diff options
121 files changed, 20674 insertions, 17916 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 53e836262..db397a2d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -197,13 +197,53 @@ if(${SELF_TEST}) add_subdirectory (tests) endif() -# Put project into solution folders in MSVC: +# Put projects into solution folders in MSVC: if (MSVC) - set_target_properties(event_core event_extra expat jsoncpp lua luaexpat mbedtls sqlite SQLiteCpp tolualib zlib PROPERTIES FOLDER Lib) - set_target_properties(luaproxy tolua PROPERTIES FOLDER Support) + set_target_properties( + event_core + event_extra + expat + jsoncpp + lua + luaexpat + mbedtls + sqlite + SQLiteCpp + tolualib + zlib + PROPERTIES FOLDER Lib + ) + set_target_properties( + luaproxy + tolua + PROPERTIES FOLDER Support + ) if (${SELF_TEST}) - set_target_properties(Network PROPERTIES FOLDER Lib) - set_target_properties(arraystocoords-exe coordinates-exe copies-exe copyblocks-exe creatable-exe EchoServer Google-exe ChunkBuffer NameLookup PROPERTIES FOLDER Tests) + set_target_properties( + Network + PROPERTIES FOLDER Lib + ) + set_target_properties( + arraystocoords-exe + ChunkBuffer + coordinates-exe + copies-exe + copyblocks-exe + creatable-exe + EchoServer + Google-exe + LoadablePieces + NameLookup + PROPERTIES FOLDER Tests + ) + endif() + + if(${BUILD_TOOLS}) + set_target_properties( + MCADefrag + ProtoProxy + PROPERTIES FOLDER Tools + ) endif() endif() diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 27910f478..f4b527000 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,4 +1,4 @@ -Many people have contributed to MCServer, and this list attempts to broadcast at least some of them. +Many people have contributed to Cuberite, and this list attempts to broadcast at least some of them. BasedDoge (Donated AlchemistVillage prefabs) bearbin (Alexander Harkness) @@ -45,4 +45,4 @@ worktycho xoft (Mattes Dolak/madmaxoft on GH) Yeeeeezus (Donated AlchemistVillage prefabs) -Please add yourself to this list if you contribute to MCServer. +Please add yourself to this list if you contribute to Cuberite. diff --git a/GETTING-STARTED.md b/GETTING-STARTED.md index 2e2568e64..772637304 100644 --- a/GETTING-STARTED.md +++ b/GETTING-STARTED.md @@ -56,20 +56,20 @@ After that they should come down automatically when you pull but it's not bad to Repo Arrangement --------------------------- -The MCServer repo has recently been rearranged for better code separation and other things, but basically it's split into a few areas: +The Cuberite repo has recently been rearranged for better code separation and other things, but basically it's split into a few areas: * `src` - This holds all of the MCServer source code, and is where most development takes place. + This holds all of the Cuberite source code, and is where most development takes place. It's split into logical areas for blocks, the protocol handling and other things. * `lib` - This holds all the 3rd party libraries for MCServer. You basically don't need to touch these, and we're thinking of switching them into submodules soon. + This holds all the 3rd party libraries for Cuberite. You basically don't need to touch these, and we're thinking of switching them into submodules soon. * `MCServer` This folder isn't greatly named, but it contains the default plugins and environment to actually run the server. You'll find the executable (named `MCServer`) here and in the `plugins` subdir the default plugins. The config files are also stored here. Config files with `.example.ini` on the end are generated by the server or source control and should be left alone, instead you should copy them to a file without the `example` in the name which will be prioritised over the generated ones. Code Styles ------------------ -Mainly follow the code styles in [CONTRIBUTING.md](https://github.com/mc-server/MCServer/blob/master/CONTRIBUTING.md), which is definitely an important read. +Mainly follow the code styles in [CONTRIBUTING.md](https://github.com/cuberite/cuberite/blob/master/CONTRIBUTING.md), which is definitely an important read. Note that there is a script file, $/src/CheckBasicStyle.lua, that can check some common violations of the coding style. You should run this file to check your code regularly. This script is run during the integration builds and if it fails, the build will fail. Note that you need Lua installed in order to run this script. @@ -79,7 +79,7 @@ How to Build **Linux/BSD/Solaris/OSX:** -Follow the instructions in [COMPILING.md](https://github.com/mc-server/MCServer/blob/master/COMPILING.md). You probably want to build in debug mode (when you're developing) for console alerts and debugging capability, even though it's much slower for everyday use. +Follow the instructions in [COMPILING.md](https://github.com/cuberite/cuberite/blob/master/COMPILING.md). You probably want to build in debug mode (when you're developing) for console alerts and debugging capability, even though it's much slower for everyday use. Basically, the process is: @@ -88,7 +88,7 @@ Basically, the process is: **Windows:** You need to first generate a solution file by executing `cmake .` on the commandline at the top-level folder of the repository, then just open the solution file in MSVC and build. Note that the first time after generating the solution, you will need to do extra setup in order to be able to fully debug in MSVC: -- Set the startup project to MCServer: right-click the MCServer project in the Solution Explorer and choose "Set as Startup Project". +- Set the startup project to Cuberite: right-click the MCServer project in the Solution Explorer and choose "Set as Startup Project". - Set the debugging folder: right-click the MCServer project in the Solution Explorer, choose "Properties". In the dialog, browse to "Configuration Properties" -> "Debugging" and set "Working Directory" to "../MCServer". How to Run @@ -108,7 +108,7 @@ There are a few fairly easy issues for you to get started with, as well as some * #577 * #381 * #752 - * Clean up some of the compiler warnings. (Check [Travis CI](http://travis-ci.org/mc-server/MCServer) for a list of them.) With clang, there are over 10000 lines of warnings to clean up. + * Clean up some of the compiler warnings. (Check [Travis CI](http://travis-ci.org/cuberite/cuberite) for a list of them.) With clang, there are over 10000 lines of warnings to clean up. **More Difficult**: @@ -116,7 +116,7 @@ There are a few fairly easy issues for you to get started with, as well as some * #134 * #215 -You may also want to write some plugins. They are written in lua, with excellent API documentation available via [APIDump](http://mc-server.xoft.cz/LuaAPI). The [Core](https://github.com/mc-server/Core) plugin should also help quite a bit here. +You may also want to write some plugins. They are written in lua, with excellent API documentation available via [APIDump](http://api-docs.cuberite.org). The [Core](https://github.com/mc-server/Core) plugin should also help quite a bit here. Special Things --------------------- diff --git a/Install/Zip2008.list b/Install/Zip2008.list index e69857d09..f14362e46 100644 --- a/Install/Zip2008.list +++ b/Install/Zip2008.list @@ -1,6 +1,7 @@ ..\MCServer\MCServer.exe ..\MCServer\*.dll ..\MCServer\Plugins +..\MCServer\Prefabs ..\MCServer\webadmin ..\MCServer\crafting.txt ..\MCServer\furnace.txt @@ -1,7 +1,7 @@ -MCServer: A performant C++ Minecraft Server -www: http://mc-server.org/ +Cuberite: A performant C++ Minecraft Server +www: https://github.com/cuberite/cuberite -Copyright 2011-2015 MCServer Team +Copyright 2011-2015 Cuberite Team ------ diff --git a/MCServer/Plugins/APIDump/APIDesc.lua b/MCServer/Plugins/APIDump/APIDesc.lua index 87edb226a..09479ee4e 100644 --- a/MCServer/Plugins/APIDump/APIDesc.lua +++ b/MCServer/Plugins/APIDump/APIDesc.lua @@ -2379,8 +2379,12 @@ local CompressedString = cStringCompression.CompressStringGZIP("DataToCompress") GetLinkedOverworldName = { Params = "", Return = "string", Notes = "Returns the name of the world this world is linked to." }, GetMapManager = { Params = "", Return = "{{cMapManager}}", Notes = "Returns the {{cMapManager|MapManager}} object used by this world." }, GetMaxCactusHeight = { Params = "", Return = "number", Notes = "Returns the configured maximum height to which cacti will grow naturally." }, + GetMaxNetherPortalHeight = { Params = "", Return = "number", Notes = "Returns the maximum height for a nether portal" }, + GetMaxNetherPortalWidth = { Params = "", Return = "number", Notes = "Returns the maximum width for a nether portal" }, GetMaxSugarcaneHeight = { Params = "", Return = "number", Notes = "Returns the configured maximum height to which sugarcane will grow naturally." }, GetMaxViewDistance = { Params = "", Return = "number", Notes = "Returns the maximum viewdistance that players can see in this world. The view distance is the amount of chunks around the player that the player can see." }, + GetMinNetherPortalHeight = { Params = "", Return = "number", Notes = "Returns the minimum height for a nether portal" }, + GetMinNetherPortalWidth = { Params = "", Return = "number", Notes = "Returns the minimum width for a nether portal" }, GetName = { Params = "", Return = "string", Notes = "Returns the name of the world, as specified in the settings.ini file." }, GetNumChunks = { Params = "", Return = "number", Notes = "Returns the number of chunks currently loaded." }, GetScoreBoard = { Params = "", Return = "{{cScoreBoard}}", Notes = "Returns the {{cScoreBoard|ScoreBoard}} object used by this world. " }, @@ -2448,6 +2452,10 @@ local CompressedString = cStringCompression.CompressStringGZIP("DataToCompress") SetLinkedNetherWorldName = { Params = "string", Return = "", Notes = "Sets the name of the world that the nether portal should link to." }, SetLinkedOverworldName = { Params = "string", Return = "", Notes = "Sets the name of the world that the nether portal should link to?" }, SetMaxViewDistance = { Params = "number", Return = "", Notes = "Sets the maximum viewdistance of the players in the world." }, + SetMaxNetherPortalHeight = { Params = "number", Return = "", Notes = "Sets the maximum height for a nether portal" }, + SetMaxNetherPortalWidth = { Params = "number", Return = "", Notes = "Sets the maximum width for a nether portal" }, + SetMinNetherPortalHeight = { Params = "number", Return = "", Notes = "Sets the minimum height for a nether portal" }, + SetMinNetherPortalWidth = { Params = "number", Return = "", Notes = "Sets the minimum width for a nether portal" }, SetShouldUseChatPrefixes = { Params = "", Return = "ShouldUse (bool)", Notes = "Sets whether coloured chat prefixes such as [INFO] is used with the SendMessageXXX() or BroadcastChatXXX(), or simply the entire message is coloured in the respective colour." }, SetSignLines = { Params = "X, Y, Z, Line1, Line2, Line3, Line4, [{{cPlayer|Player}}]", Return = "", Notes = "Sets the sign text at the specified coords. The sign-updating hooks are called for the change. The Player parameter is used to indicate the player from whom the change has come, it may be nil." }, SetTicksUntilWeatherChange = { Params = "NumTicks", Return = "", Notes = "Sets the number of ticks after which the weather will be changed." }, diff --git a/MCServer/Plugins/APIDump/Hooks/OnKilled.lua b/MCServer/Plugins/APIDump/Hooks/OnKilled.lua new file mode 100644 index 000000000..9289b8f35 --- /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/MCServer/Plugins/InfoDump.lua b/MCServer/Plugins/InfoDump.lua index a715c9a18..2c7fff163 100644 --- a/MCServer/Plugins/InfoDump.lua +++ b/MCServer/Plugins/InfoDump.lua @@ -136,7 +136,7 @@ local function BuildCategories(a_PluginInfo) -- For each command add a reference to it into all of its categories: local function AddCommands(a_CmdPrefix, a_Commands) - for cmd, info in pairs(a_Commands) do + for cmd, info in pairs(a_Commands or {}) do local NewCmd = { CommandString = a_CmdPrefix .. cmd, @@ -451,7 +451,7 @@ local function BuildPermissions(a_PluginInfo) -- Collect all used permissions from Commands, reference the commands that use the permission: local Permissions = a_PluginInfo.Permissions or {} local function CollectPermissions(a_CmdPrefix, a_Commands) - for cmd, info in pairs(a_Commands) do + for cmd, info in pairs(a_Commands or {}) do CommandString = a_CmdPrefix .. cmd if ((info.Permission ~= nil) and (info.Permission ~= "")) then -- Add the permission to the list of permissions: diff --git a/MCServer/Prefabs/Villages/AlchemistVillage.cubeset b/MCServer/Prefabs/Villages/AlchemistVillage.cubeset new file mode 100644 index 000000000..eac51e176 --- /dev/null +++ b/MCServer/Prefabs/Villages/AlchemistVillage.cubeset @@ -0,0 +1,3647 @@ + +-- AlchemistVillage.cubeset + +-- Defines the prefabs in the group AlchemistVillage + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2015-06-20 10:17:14", + ["AllowedBiomes"] = "Desert, DesertM", + ["IntendedUse"] = "Village", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "LittleHouse", + Name = "Desert 65", + GalleryName = "Desert", + GalleryIndex = "65", + ID = "551", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 5, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 5, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 2, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 61: 2", -- furnace + "h: 65: 2", -- ladder + "i: 64: 9", -- wooddoorblock + "j:101: 0", -- ironbars + "k: 50: 4", -- torch + "l:128: 2", -- sandstonestairs + "m: 19: 0", -- sponge + "n:126: 8", -- woodenslab + "o:128: 4", -- sandstonestairs + "p:128: 5", -- sandstonestairs + "q:128: 7", -- sandstonestairs + "r: 44: 1", -- step + "s: 96: 2", -- trapdoor + }, + BlockData = + { + -- Level 0 + "abbba", -- 0 + "mbbbm", -- 1 + "accca", -- 2 + "ccccc", -- 3 + "ccccc", -- 4 + "ccccc", -- 5 + "accca", -- 6 + + -- Level 1 + "addda", -- 0 + "mdddm", -- 1 + "aceca", -- 2 + "ceeec", -- 3 + "ceeec", -- 4 + "ceeec", -- 5 + "accca", -- 6 + + -- Level 2 + "a...a", -- 0 + ".....", -- 1 + "acfca", -- 2 + "c...c", -- 3 + "c...c", -- 4 + "cg.hc", -- 5 + "accca", -- 6 + + -- Level 3 + "a...a", -- 0 + ".....", -- 1 + "acica", -- 2 + "c...c", -- 3 + "j...j", -- 4 + "ck.hc", -- 5 + "acjca", -- 6 + + -- Level 4 + "l...l", -- 0 + "c...c", -- 1 + "accca", -- 2 + "cnnnc", -- 3 + "onnnp", -- 4 + "cnnhc", -- 5 + "acqca", -- 6 + + -- Level 5 + ".....", -- 0 + ".....", -- 1 + "crcrc", -- 2 + "r...r", -- 3 + "c...c", -- 4 + "r..sr", -- 5 + "crcrc", -- 6 + + }, + }, -- LittleHouse + + + + { + OriginData = + { + ExportName = "LittleHouse3", + Name = "Desert 66", + GalleryName = "Desert", + GalleryIndex = "66", + ID = "553", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 9, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 65: 2", -- ladder + "h: 64: 9", -- wooddoorblock + "i:101: 0", -- ironbars + "j: 50: 4", -- torch + "k:128: 2", -- sandstonestairs + "l:126: 8", -- woodenslab + "m: 19: 0", -- sponge + "n:128: 4", -- sandstonestairs + "o:128: 5", -- sandstonestairs + "p:128: 7", -- sandstonestairs + "q: 44: 1", -- step + "r: 96: 2", -- trapdoor + }, + BlockData = + { + -- Level 0 + "mmabbbamm", -- 0 + "mmmbbbmmm", -- 1 + "accccccca", -- 2 + "ccccccccc", -- 3 + "ccccccccc", -- 4 + "ccccccccc", -- 5 + "accccccca", -- 6 + + -- Level 1 + "mmadddamm", -- 0 + "mmmdddmmm", -- 1 + "accceccca", -- 2 + "ceeeeeeec", -- 3 + "ceeeeeeec", -- 4 + "ceeeeeeec", -- 5 + "accccccca", -- 6 + + -- Level 2 + "mma...amm", -- 0 + "mm.....mm", -- 1 + "acccfccca", -- 2 + "c.......c", -- 3 + "c.......c", -- 4 + "c......gc", -- 5 + "accccccca", -- 6 + + -- Level 3 + "mma...amm", -- 0 + "mm.....mm", -- 1 + "accchccca", -- 2 + "c.......c", -- 3 + "i.......i", -- 4 + "c.j....gc", -- 5 + "acciiicca", -- 6 + + -- Level 4 + "mmk...kmm", -- 0 + "mmc...cmm", -- 1 + "accccccca", -- 2 + "clllllllc", -- 3 + "nlllllllo", -- 4 + "cllllllgc", -- 5 + "accpppcca", -- 6 + + -- Level 5 + "mm.....mm", -- 0 + "mm.....mm", -- 1 + "cqqqcqqqc", -- 2 + "q.......q", -- 3 + "c.......c", -- 4 + "q......rq", -- 5 + "cqqqcqqqc", -- 6 + + }, + }, -- LittleHouse3 + + + + { + OriginData = + { + ExportName = "SmallHouse9", + Name = "Desert 67", + GalleryName = "Desert", + GalleryIndex = "67", + ID = "556", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 9, + y = 6, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 5, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 65: 2", -- ladder + "h: 64: 9", -- wooddoorblock + "i:101: 0", -- ironbars + "j: 50: 2", -- torch + "k: 50: 1", -- torch + "l:128: 2", -- sandstonestairs + "m: 19: 0", -- sponge + "n:126: 8", -- woodenslab + "o:128: 5", -- sandstonestairs + "p:128: 6", -- sandstonestairs + "q:128: 4", -- sandstonestairs + "r:128: 7", -- sandstonestairs + "s: 44: 1", -- step + "t: 96: 2", -- trapdoor + }, + BlockData = + { + -- Level 0 + "mmmmabbba", -- 0 + "mmmmmbbbm", -- 1 + "mmmmaccca", -- 2 + "mmmmccccc", -- 3 + "mmmmccccc", -- 4 + "mmmmccccc", -- 5 + "acccacccc", -- 6 + "ccccccccc", -- 7 + "ccccccccc", -- 8 + "ccccccccc", -- 9 + "accccccca", -- 10 + + -- Level 1 + "mmmmaddda", -- 0 + "mmmmmdddm", -- 1 + "mmmmaceca", -- 2 + "mmmmceeec", -- 3 + "mmmmceeec", -- 4 + "mmmmceeec", -- 5 + "acccaeeec", -- 6 + "ceeeeeeec", -- 7 + "ceeeeeeec", -- 8 + "ceeeeeeec", -- 9 + "accccccca", -- 10 + + -- Level 2 + "mmmma...a", -- 0 + "mmmm.....", -- 1 + "mmmmacfca", -- 2 + "mmmmc...c", -- 3 + "mmmmc...c", -- 4 + "mmmmc...c", -- 5 + "accca...c", -- 6 + "c.......c", -- 7 + "c.......c", -- 8 + "c......gc", -- 9 + "accccccca", -- 10 + + -- Level 3 + "mmmma...a", -- 0 + "mmmm.....", -- 1 + "mmmmachca", -- 2 + "mmmmc...c", -- 3 + "mmmmc...c", -- 4 + "mmmmc...i", -- 5 + "acica...i", -- 6 + "c.......i", -- 7 + "i......jc", -- 8 + "ck.....gc", -- 9 + "acciiicca", -- 10 + + -- Level 4 + "mmmml...l", -- 0 + "mmmmc...c", -- 1 + "mmmmaccca", -- 2 + "mmmmcnnnc", -- 3 + "mmmmcnnnc", -- 4 + "mmmmcnnno", -- 5 + "acpcannno", -- 6 + "cnnnnnnno", -- 7 + "qnnnnnnnc", -- 8 + "cnnnnnngc", -- 9 + "accrrrcca", -- 10 + + -- Level 5 + "mmmm.....", -- 0 + "mmmm.....", -- 1 + "mmmmcscsc", -- 2 + "mmmms...s", -- 3 + "mmmms...s", -- 4 + "mmmms...s", -- 5 + "csssc...c", -- 6 + "s.......s", -- 7 + "s.......s", -- 8 + "s......ts", -- 9 + "cssscsssc", -- 10 + + }, + }, -- SmallHouse9 + + + + { + OriginData = + { + ExportName = "LittleHouse5", + Name = "Desert 68", + GalleryName = "Desert", + GalleryIndex = "68", + ID = "558", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 9, + y = 6, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 5, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 65: 2", -- ladder + "h: 64: 9", -- wooddoorblock + "i:101: 0", -- ironbars + "j: 50: 1", -- torch + "k: 50: 4", -- torch + "l:128: 2", -- sandstonestairs + "m: 19: 0", -- sponge + "n:126: 8", -- woodenslab + "o:128: 6", -- sandstonestairs + "p:128: 5", -- sandstonestairs + "q:128: 4", -- sandstonestairs + "r:128: 7", -- sandstonestairs + "s: 44: 1", -- step + "t: 96: 2", -- trapdoor + }, + BlockData = + { + -- Level 0 + "mmmmabbba", -- 0 + "mmmmmbbbm", -- 1 + "mmmmaccca", -- 2 + "mmmmccccc", -- 3 + "acccacccc", -- 4 + "ccccccccc", -- 5 + "ccccccccc", -- 6 + "ccccccccc", -- 7 + "accccccca", -- 8 + + -- Level 1 + "mmmmaddda", -- 0 + "mmmmmdddm", -- 1 + "mmmmaceca", -- 2 + "mmmmceeec", -- 3 + "acccaeeec", -- 4 + "ceeeeeeec", -- 5 + "ceeeeeeec", -- 6 + "ceeeeeeec", -- 7 + "accccccca", -- 8 + + -- Level 2 + "mmmma...a", -- 0 + "mmmm.....", -- 1 + "mmmmacfca", -- 2 + "mmmmc...c", -- 3 + "accca...c", -- 4 + "c.......c", -- 5 + "c.......c", -- 6 + "c......gc", -- 7 + "accccccca", -- 8 + + -- Level 3 + "mmmma...a", -- 0 + "mmmm.....", -- 1 + "mmmmachca", -- 2 + "mmmmc...c", -- 3 + "acica...i", -- 4 + "c.......i", -- 5 + "i.......i", -- 6 + "cj....kgc", -- 7 + "acciiicca", -- 8 + + -- Level 4 + "mmmml...l", -- 0 + "mmmmc...c", -- 1 + "mmmmaccca", -- 2 + "mmmmcnnnc", -- 3 + "acocannnp", -- 4 + "cnnnnnnnp", -- 5 + "qnnnnnnnp", -- 6 + "cnnnnnngc", -- 7 + "accrrrcca", -- 8 + + -- Level 5 + "mmmm.....", -- 0 + "mmmm.....", -- 1 + "mmmmcscsc", -- 2 + "mmmms...s", -- 3 + "csssc...c", -- 4 + "s.......s", -- 5 + "s.......s", -- 6 + "s......ts", -- 7 + "cssscsssc", -- 8 + + }, + }, -- LittleHouse5 + + + + { + OriginData = + { + ExportName = "LittleHouse6", + Name = "Desert 69", + GalleryName = "Desert", + GalleryIndex = "69", + ID = "559", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 9, + y = 6, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 5, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A: 96: 2", -- trapdoor + "a: 12: 0", -- sand + "b: 24: 2", -- sandstone + "c: 4: 0", -- cobblestone + "d: 3: 0", -- dirt + "e: 24: 0", -- sandstone + "f: 13: 0", -- gravel + "g: 2: 0", -- grass + "h: 5: 0", -- planks + "i: 85: 0", -- fence + "j: 64: 3", -- wooddoorblock + "k: 38: 1", -- rose + "l: 38: 2", -- rose + "m: 19: 0", -- sponge + "n: 38: 5", -- rose + "o: 65: 2", -- ladder + "p: 64: 9", -- wooddoorblock + "q:101: 0", -- ironbars + "r: 50: 1", -- torch + "s: 50: 4", -- torch + "t:128: 2", -- sandstonestairs + "u:126: 8", -- woodenslab + "v:128: 6", -- sandstonestairs + "w:128: 5", -- sandstonestairs + "x:128: 4", -- sandstonestairs + "y:128: 7", -- sandstonestairs + "z: 44: 1", -- step + }, + BlockData = + { + -- Level 0 + "aaaabcccb", -- 0 + "adddccccm", -- 1 + "adddbeeeb", -- 2 + "adddeeeee", -- 3 + "beeebeeee", -- 4 + "eeeeeeeee", -- 5 + "eeeeeeeee", -- 6 + "eeeeeeeee", -- 7 + "beeeeeeeb", -- 8 + + -- Level 1 + "aaaabfffb", -- 0 + "agggffffm", -- 1 + "agggbeheb", -- 2 + "agggehhhe", -- 3 + "beeebhhhe", -- 4 + "ehhhhhhhe", -- 5 + "ehhhhhhhe", -- 6 + "ehhhhhhhe", -- 7 + "beeeeeeeb", -- 8 + + -- Level 2 + "iiiib...b", -- 0 + "i........", -- 1 + "i...bejeb", -- 2 + "iklne...e", -- 3 + "beeeb...e", -- 4 + "e.......e", -- 5 + "e.......e", -- 6 + "e......oe", -- 7 + "beeeeeeeb", -- 8 + + -- Level 3 + "....b...b", -- 0 + ".........", -- 1 + "....bepeb", -- 2 + "....e...e", -- 3 + "beqeb...q", -- 4 + "e.......q", -- 5 + "q.......q", -- 6 + "er....soe", -- 7 + "beeqqqeeb", -- 8 + + -- Level 4 + "....t...t", -- 0 + "....e...e", -- 1 + "....beeeb", -- 2 + "....euuue", -- 3 + "bevebuuuw", -- 4 + "euuuuuuuw", -- 5 + "xuuuuuuuw", -- 6 + "euuuuuuoe", -- 7 + "beeyyyeeb", -- 8 + + -- Level 5 + ".........", -- 0 + ".........", -- 1 + "....ezeze", -- 2 + "....z...z", -- 3 + "ezzze...e", -- 4 + "z.......z", -- 5 + "z.......z", -- 6 + "z......Az", -- 7 + "ezzzezzze", -- 8 + + }, + }, -- LittleHouse6 + + + + { + OriginData = + { + ExportName = "LittleHouse4", + Name = "Desert 70", + GalleryName = "Desert", + GalleryIndex = "70", + ID = "560", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 5, + y = 6, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 5, + MaxY = 5, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 2, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 65: 5", -- ladder + "h:134: 3", -- sprucewoodstairs + "i: 85: 0", -- fence + "j:134: 2", -- sprucewoodstairs + "k: 61: 2", -- furnace + "l:134: 6", -- sprucewoodstairs + "m: 19: 0", -- sponge + "n:134: 4", -- sprucewoodstairs + "o: 64: 9", -- wooddoorblock + "p: 50: 2", -- torch + "q:101: 0", -- ironbars + "r:171: 8", -- carpet + "s:128: 2", -- sandstonestairs + "t:126: 8", -- woodenslab + "u:128: 4", -- sandstonestairs + "v:128: 5", -- sandstonestairs + "w:128: 7", -- sandstonestairs + "x: 44: 1", -- step + "y: 96: 1", -- trapdoor + }, + BlockData = + { + -- Level 0 + "abbba", -- 0 + "mbbbm", -- 1 + "accca", -- 2 + "ccccc", -- 3 + "ccccc", -- 4 + "ccccc", -- 5 + "ccccc", -- 6 + "ccccc", -- 7 + "ccccc", -- 8 + "ccccc", -- 9 + "accca", -- 10 + + -- Level 1 + "addda", -- 0 + "mdddm", -- 1 + "aceca", -- 2 + "ceeec", -- 3 + "ceeec", -- 4 + "ceeec", -- 5 + "ceeec", -- 6 + "ceeec", -- 7 + "ceeec", -- 8 + "ceeec", -- 9 + "accca", -- 10 + + -- Level 2 + "a...a", -- 0 + ".....", -- 1 + "acfca", -- 2 + "cg..c", -- 3 + "c...c", -- 4 + "c..hc", -- 5 + "c..ic", -- 6 + "c..jc", -- 7 + "c...c", -- 8 + "cklnc", -- 9 + "accca", -- 10 + + -- Level 3 + "a...a", -- 0 + ".....", -- 1 + "acoca", -- 2 + "cg..c", -- 3 + "c..pc", -- 4 + "q...q", -- 5 + "q..rq", -- 6 + "q...q", -- 7 + "c...c", -- 8 + "c...c", -- 9 + "acqca", -- 10 + + -- Level 4 + "s...s", -- 0 + "c...c", -- 1 + "accca", -- 2 + "cgttc", -- 3 + "ctttc", -- 4 + "utttv", -- 5 + "utttv", -- 6 + "utttv", -- 7 + "ctttc", -- 8 + "ctttc", -- 9 + "acwca", -- 10 + + -- Level 5 + ".....", -- 0 + ".....", -- 1 + "cxcxc", -- 2 + "xy..x", -- 3 + "x...x", -- 4 + "x...x", -- 5 + "c...c", -- 6 + "x...x", -- 7 + "x...x", -- 8 + "x...x", -- 9 + "cxcxc", -- 10 + + }, + }, -- LittleHouse4 + + + + { + OriginData = + { + ExportName = "MediumHouse1", + Name = "Desert 71", + GalleryName = "Desert", + GalleryIndex = "71", + ID = "561", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 15, + y = 9, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 15, + MaxY = 8, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "80", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 12: 0", -- sand + "g: 64: 3", -- wooddoorblock + "h: 85: 0", -- fence + "i: 64: 0", -- wooddoorblock + "j: 65: 5", -- ladder + "k: 64: 9", -- wooddoorblock + "l:101: 0", -- ironbars + "m: 19: 0", -- sponge + "n: 64: 8", -- wooddoorblock + "o: 50: 4", -- torch + "p:128: 2", -- sandstonestairs + "q:126: 8", -- woodenslab + "r:128: 4", -- sandstonestairs + "s:128: 7", -- sandstonestairs + "t: 44: 1", -- step + "u: 50: 3", -- torch + "v:128: 6", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmmabbbammmmmmm", -- 0 + "mmmmbbbmmmmmmmm", -- 1 + "acccccccccacccc", -- 2 + "ccccccccccccccc", -- 3 + "ccccccccccccccc", -- 4 + "ccccccccccccccc", -- 5 + "ccccccccccccccc", -- 6 + "ccccccccccccccc", -- 7 + "acccccccccacccc", -- 8 + + -- Level 1 + "mmmadddammmmmmm", -- 0 + "mmmmdddmmmmmmmm", -- 1 + "acccceccccaffff", -- 2 + "ceeeeeeeeecffff", -- 3 + "ceeeeeeeeecffff", -- 4 + "ceeeeeeeeeeffff", -- 5 + "ceeeeeeeeecffff", -- 6 + "ceeeeeeeeecffff", -- 7 + "acccccccccaffff", -- 8 + + -- Level 2 + "mmma...ammmmmmm", -- 0 + "mmm.....mmmmmmm", -- 1 + "accccgccccahhhh", -- 2 + "c.........c...h", -- 3 + "c.........c...h", -- 4 + "c.........i...h", -- 5 + "c.........c...h", -- 6 + "c.........cj..h", -- 7 + "acccccccccahhhh", -- 8 + + -- Level 3 + "mmma...ammmmmmm", -- 0 + "mmm.....mmmmmmm", -- 1 + "acccckcccca....", -- 2 + "c.........c....", -- 3 + "l.........c....", -- 4 + "l.........n....", -- 5 + "l.........c....", -- 6 + "c..o...o..cj...", -- 7 + "accclllccca....", -- 8 + + -- Level 4 + "mmmp...pmmmmmmm", -- 0 + "mmmc...cmmmmmmm", -- 1 + "accccccccca....", -- 2 + "cqqqqqqqqqc....", -- 3 + "rqqqqqqqqqc....", -- 4 + "rqqqqqqqqqc....", -- 5 + "rqqqqqqqqqc....", -- 6 + "cqqqqqqqqqcj...", -- 7 + "acccsssccca....", -- 8 + + -- Level 5 + "mmm.....mmmmmmm", -- 0 + "mmm.....mmmmmmm", -- 1 + "cttttcttttc....", -- 2 + "t..accca..t....", -- 3 + "t..c...c..t....", -- 4 + "c.........c....", -- 5 + "t..c...c..t....", -- 6 + "t..accca..t....", -- 7 + "cttttcttttc....", -- 8 + + -- Level 6 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...aclca.......", -- 3 + "...cu..c.......", -- 4 + "...............", -- 5 + "...c...c.......", -- 6 + "...aclca.......", -- 7 + "...............", -- 8 + + -- Level 7 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...acvca.......", -- 3 + "...cqqqc.......", -- 4 + "...cqqqc.......", -- 5 + "...cqqqc.......", -- 6 + "...acsca.......", -- 7 + "...............", -- 8 + + -- Level 8 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...ctctc.......", -- 3 + "...t...t.......", -- 4 + "...c...c.......", -- 5 + "...t...t.......", -- 6 + "...ctctc.......", -- 7 + "...............", -- 8 + + }, + }, -- MediumHouse1 + + + + { + OriginData = + { + ExportName = "LittleHouse2", + Name = "Desert 72", + GalleryName = "Desert", + GalleryIndex = "72", + ID = "562", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 6, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 5, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 12: 0", -- sand + "e: 13: 0", -- gravel + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h: 65: 5", -- ladder + "i: 85: 0", -- fence + "j:101: 0", -- ironbars + "k: 64: 9", -- wooddoorblock + "l: 50: 3", -- torch + "m: 19: 0", -- sponge + "n:128: 2", -- sandstonestairs + "o:128: 6", -- sandstonestairs + "p:126: 8", -- woodenslab + "q:128: 4", -- sandstonestairs + "r:128: 5", -- sandstonestairs + "s:128: 7", -- sandstonestairs + "t: 44: 1", -- step + "u: 96: 0", -- trapdoor + }, + BlockData = + { + -- Level 0 + "mabbbam", -- 0 + "mmbbbmm", -- 1 + "accccca", -- 2 + "ccccccc", -- 3 + "ccccccc", -- 4 + "ccccccc", -- 5 + "accccca", -- 6 + "ddddddd", -- 7 + "ddddddd", -- 8 + "ddddddd", -- 9 + "ddddddd", -- 10 + + -- Level 1 + "maeeeam", -- 0 + "mmeeemm", -- 1 + "acccfca", -- 2 + "cfffffc", -- 3 + "cfffffc", -- 4 + "cfffffc", -- 5 + "acfccca", -- 6 + "ddddddd", -- 7 + "ddddddd", -- 8 + "ddddddd", -- 9 + "ddddddd", -- 10 + + -- Level 2 + "ma...am", -- 0 + "m.....m", -- 1 + "acccgca", -- 2 + "c.....c", -- 3 + "c.....c", -- 4 + "ch....c", -- 5 + "ac.ccca", -- 6 + "i.....i", -- 7 + "i.....i", -- 8 + "i.....i", -- 9 + "iiiiiii", -- 10 + + -- Level 3 + "ma...am", -- 0 + "m.....m", -- 1 + "acjckca", -- 2 + "c..l..c", -- 3 + "j.....j", -- 4 + "ch....c", -- 5 + "ac.cjca", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + + -- Level 4 + "mn...nm", -- 0 + "mc...cm", -- 1 + "acoccca", -- 2 + "cpppppc", -- 3 + "qpppppr", -- 4 + "chppppc", -- 5 + "acccsca", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + + -- Level 5 + "m.....m", -- 0 + "m.....m", -- 1 + "cttcttc", -- 2 + "t.....t", -- 3 + "c.....c", -- 4 + "tu....t", -- 5 + "cttcttc", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + + }, + }, -- LittleHouse2 + + + + { + OriginData = + { + ExportName = "LittleHouse7", + Name = "Desert 73", + GalleryName = "Desert", + GalleryIndex = "73", + ID = "563", + CreatorName = "xoft", + }, + Size = + { + x = 9, + y = 6, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 5, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 65: 2", -- ladder + "h:101: 0", -- ironbars + "i: 64: 9", -- wooddoorblock + "j: 50: 1", -- torch + "k: 50: 2", -- torch + "l:128: 2", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:126: 8", -- woodenslab + "p:128: 4", -- sandstonestairs + "q:128: 5", -- sandstonestairs + "r:128: 7", -- sandstonestairs + "s: 44: 1", -- step + "t: 96: 2", -- trapdoor + }, + BlockData = + { + -- Level 0 + "mmmmabbba", -- 0 + "mmmmmbbbm", -- 1 + "accccccca", -- 2 + "ccccccccc", -- 3 + "ccccccccc", -- 4 + "ccccccccc", -- 5 + "acccacccc", -- 6 + "mmmmccccc", -- 7 + "mmmmccccc", -- 8 + "mmmmccccc", -- 9 + "mmmmaccca", -- 10 + + -- Level 1 + "mmmmaddda", -- 0 + "mmmmmdddm", -- 1 + "accccceca", -- 2 + "ceeeeeeec", -- 3 + "ceeeeeeec", -- 4 + "ceeeeeeec", -- 5 + "acccaeeec", -- 6 + "mmmmceeec", -- 7 + "mmmmceeec", -- 8 + "mmmmceeec", -- 9 + "mmmmaccca", -- 10 + + -- Level 2 + "mmmma...a", -- 0 + "mmmm.....", -- 1 + "acccccfca", -- 2 + "c.......c", -- 3 + "c.......c", -- 4 + "c.......c", -- 5 + "accca...c", -- 6 + "mmmmc...c", -- 7 + "mmmmc...c", -- 8 + "mmmmc..gc", -- 9 + "mmmmaccca", -- 10 + + -- Level 3 + "mmmma...a", -- 0 + "mmmm.....", -- 1 + "achcccica", -- 2 + "c.......c", -- 3 + "h.......c", -- 4 + "cj......h", -- 5 + "achca...h", -- 6 + "mmmmc...h", -- 7 + "mmmmh..kc", -- 8 + "mmmmc..gc", -- 9 + "mmmmachca", -- 10 + + -- Level 4 + "mmmml...l", -- 0 + "mmmmc...c", -- 1 + "acnccccca", -- 2 + "coooooooc", -- 3 + "poooooooc", -- 4 + "coooooooq", -- 5 + "acrcaoooq", -- 6 + "mmmmcoooq", -- 7 + "mmmmpoooc", -- 8 + "mmmmcoogc", -- 9 + "mmmmacrca", -- 10 + + -- Level 5 + "mmmm.....", -- 0 + "mmmm.....", -- 1 + "cssscscsc", -- 2 + "s.......s", -- 3 + "s.......s", -- 4 + "s.......s", -- 5 + "csssc...c", -- 6 + "mmmms...s", -- 7 + "mmmms...s", -- 8 + "mmmms..ts", -- 9 + "mmmmcsssc", -- 10 + + }, + }, -- LittleHouse7 + + + + { + OriginData = + { + ExportName = "MediumHouse2", + Name = "Desert 74", + GalleryName = "Desert", + GalleryIndex = "74", + ID = "573", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 11, + y = 10, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 9, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 8, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "80", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A:128: 7", -- sandstonestairs + "B: 44: 1", -- step + "C: 96: 3", -- trapdoor + "D: 96: 2", -- trapdoor + "E:128: 2", -- sandstonestairs + "F:128: 0", -- sandstonestairs + "G: 87: 0", -- netherstone + "H:128: 1", -- sandstonestairs + "I:128: 3", -- sandstonestairs + "J: 51: 0", -- fire + "K: 44: 9", -- step + "a: 24: 2", -- sandstone + "b: 24: 0", -- sandstone + "c: 4: 0", -- cobblestone + "d: 12: 0", -- sand + "e: 13: 0", -- gravel + "f: 5: 0", -- planks + "g: 65: 3", -- ladder + "h: 85: 0", -- fence + "i: 64: 3", -- wooddoorblock + "j:134: 1", -- sprucewoodstairs + "k:134: 2", -- sprucewoodstairs + "l: 61: 2", -- furnace + "m: 19: 0", -- sponge + "n:134: 6", -- sprucewoodstairs + "o:134: 4", -- sprucewoodstairs + "p: 65: 2", -- ladder + "q:101: 0", -- ironbars + "r: 50: 2", -- torch + "s: 47: 0", -- bookshelf + "t: 64: 9", -- wooddoorblock + "u: 50: 3", -- torch + "v:171: 8", -- carpet + "w:128: 6", -- sandstonestairs + "x:126: 8", -- woodenslab + "y:128: 5", -- sandstonestairs + "z:128: 4", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "abbbammmcmm", -- 0 + "bbbbbdddcdm", -- 1 + "bbbbbmmmcdm", -- 2 + "bbbbbmmmcdm", -- 3 + "bbbbabbbbba", -- 4 + "bbbbbbbbbbb", -- 5 + "bbbbbbbbbbb", -- 6 + "bbbbbbbbbbb", -- 7 + "abbbbbbbbba", -- 8 + + -- Level 1 + "abbbammmemm", -- 0 + "bfffbdddedm", -- 1 + "bfffbmmmedm", -- 2 + "bfffbmmmedm", -- 3 + "bfffabbbfba", -- 4 + "bfffffffffb", -- 5 + "bfffffffffb", -- 6 + "bfffffffffb", -- 7 + "abbbbbbbbba", -- 8 + + -- Level 2 + "abbba......", -- 0 + "bg..bhhh.h.", -- 1 + "b...b....h.", -- 2 + "b...b....h.", -- 3 + "b...abbbiba", -- 4 + "b.........b", -- 5 + "bjh.......b", -- 6 + "bjk.lno..pb", -- 7 + "abbbbbbbbba", -- 8 + + -- Level 3 + "abqba......", -- 0 + "bg..q......", -- 1 + "b...q......", -- 2 + "q..rb......", -- 3 + "q...sbqbtba", -- 4 + "q......u..b", -- 5 + "b.v.......q", -- 6 + "b........pb", -- 7 + "abbbqqqbbba", -- 8 + + -- Level 4 + "abwba......", -- 0 + "bgxxy......", -- 1 + "bxxxy......", -- 2 + "zxxxb......", -- 3 + "zxxxabwbbba", -- 4 + "zxxxxxxxxxb", -- 5 + "bxxxxxxxxxy", -- 6 + "bxxxsssxxpb", -- 7 + "abbbAAAbbba", -- 8 + + -- Level 5 + "bBBBb......", -- 0 + "BC..B......", -- 1 + "B...B......", -- 2 + "B...B......", -- 3 + "b...bBBBBBb", -- 4 + "Bbbb......B", -- 5 + "Bbbb......B", -- 6 + "Bbbb.....DB", -- 7 + "bBBBBbBBBBb", -- 8 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + ".aEa.......", -- 5 + ".FGH.......", -- 6 + ".aIa.......", -- 7 + "...........", -- 8 + + -- Level 7 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + ".a.a.......", -- 5 + "..J........", -- 6 + ".a.a.......", -- 7 + "...........", -- 8 + + -- Level 8 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + ".bbb.......", -- 5 + ".bKb.......", -- 6 + ".bbb.......", -- 7 + "...........", -- 8 + + -- Level 9 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + ".B.B.......", -- 5 + "...........", -- 6 + ".B.B.......", -- 7 + "...........", -- 8 + + }, + }, -- MediumHouse2 + + + + { + OriginData = + { + ExportName = "MediumHouse3", + Name = "Desert 76", + GalleryName = "Desert", + GalleryIndex = "76", + ID = "575", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 12, + y = 10, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 12, + MaxY = 9, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 9, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "80", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 3: 0", -- dirt + "d: 24: 0", -- sandstone + "e: 13: 0", -- gravel + "f: 2: 0", -- grass + "g: 5: 0", -- planks + "h: 85: 0", -- fence + "i: 64: 3", -- wooddoorblock + "j: 64: 2", -- wooddoorblock + "k: 65: 4", -- ladder + "l: 65: 2", -- ladder + "m: 19: 0", -- sponge + "n: 50: 1", -- torch + "o: 50: 2", -- torch + "p:101: 0", -- ironbars + "q: 64: 9", -- wooddoorblock + "r:128: 2", -- sandstonestairs + "s:128: 6", -- sandstonestairs + "t:126: 8", -- woodenslab + "u:128: 5", -- sandstonestairs + "v:128: 7", -- sandstonestairs + "w: 44: 1", -- step + "x: 96: 0", -- trapdoor + "y:126: 0", -- woodenslab + "z:128: 4", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmmmmammbbba", -- 0 + "mmmmmmmmbbbm", -- 1 + "cccccaddddda", -- 2 + "cccccddddddd", -- 3 + "cccccddddddd", -- 4 + "cccccddddddd", -- 5 + "cccddddddddd", -- 6 + "mmmddddddddd", -- 7 + "mmmdddddddda", -- 8 + "mmmdddddmmmm", -- 9 + "mmmadddammmm", -- 10 + + -- Level 1 + "mmmmmammeeea", -- 0 + "mmmmmmmmeeem", -- 1 + "fffffadddgda", -- 2 + "fffffdgggggd", -- 3 + "fffffggggggd", -- 4 + "fffffdgggggd", -- 5 + "fffddggggggd", -- 6 + "mmmdgggggggd", -- 7 + "mmmdggggddda", -- 8 + "mmmdgggdmmmm", -- 9 + "mmmadddammmm", -- 10 + + -- Level 2 + "mmmmma.....a", -- 0 + "mmmmm.......", -- 1 + "hhhhhadddida", -- 2 + "h....d.....d", -- 3 + "h....j.....d", -- 4 + "h....d.....d", -- 5 + "hhhad......d", -- 6 + "mmmd......kd", -- 7 + "mmmd....ddda", -- 8 + "mmmd..ldmmmm", -- 9 + "mmmadddammmm", -- 10 + + -- Level 3 + "mmmmman...oa", -- 0 + "mmmmm.......", -- 1 + ".....appdqda", -- 2 + ".....d.....d", -- 3 + ".....q.....d", -- 4 + ".....d.....p", -- 5 + "...hd......d", -- 6 + "mmmd......kd", -- 7 + "mmmd....dppa", -- 8 + "mmmd..ldmmmm", -- 9 + "mmmhdddhmmmm", -- 10 + + -- Level 4 + "mmmmmr.....r", -- 0 + "mmmmmd.....d", -- 1 + ".....assddda", -- 2 + ".....dtttttd", -- 3 + ".....dtttttd", -- 4 + ".....dtttttu", -- 5 + "...hdatttttd", -- 6 + "mmmdttttttkd", -- 7 + "mmmdtttadvva", -- 8 + "mmmdttldmmmm", -- 9 + "mmmhdddhmmmm", -- 10 + + -- Level 5 + "............", -- 0 + "............", -- 1 + ".....dwwdwwd", -- 2 + ".....w.....w", -- 3 + ".....w.....w", -- 4 + ".....w.....d", -- 5 + "...hdadh...w", -- 6 + "mmmd...d..xw", -- 7 + "mmmd...awwwd", -- 8 + "mmmd..ldmmmm", -- 9 + "mmmhdddhmmmm", -- 10 + + -- Level 6 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "............", -- 3 + "............", -- 4 + "............", -- 5 + "...hd.dh....", -- 6 + "mmmd...d....", -- 7 + "mmmp........", -- 8 + "mmmd..ldmmmm", -- 9 + "mmmhdpdhmmmm", -- 10 + + -- Level 7 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "............", -- 3 + "............", -- 4 + "............", -- 5 + "...hd.dh....", -- 6 + "mmmd...d....", -- 7 + "mmmp........", -- 8 + "mmmdn.ldmmmm", -- 9 + "mmmhdpdhmmmm", -- 10 + + -- Level 8 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "............", -- 3 + "............", -- 4 + "............", -- 5 + "...adsda....", -- 6 + "mmmdyyyd....", -- 7 + "mmmzyyyu....", -- 8 + "mmmdyyldmmmm", -- 9 + "mmmadvdammmm", -- 10 + + -- Level 9 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "............", -- 3 + "............", -- 4 + "............", -- 5 + "...w.w.w....", -- 6 + "mmm.........", -- 7 + "mmmw...w....", -- 8 + "mmm.....mmmm", -- 9 + "mmmw.w.wmmmm", -- 10 + + }, + }, -- MediumHouse3 + + + + { + OriginData = + { + ExportName = "LargeHouse1", + Name = "Desert 77", + GalleryName = "Desert", + GalleryIndex = "77", + ID = "577", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 15, + y = 14, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 14, + MaxY = 13, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 14, + RelY = 2, + RelZ = 3, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "60", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A: 96:10", -- trapdoor + "B:128: 4", -- sandstonestairs + "C:128: 5", -- sandstonestairs + "D:128: 7", -- sandstonestairs + "E: 44: 1", -- step + "F:128: 2", -- sandstonestairs + "G:128: 0", -- sandstonestairs + "H: 87: 0", -- netherstone + "I:128: 3", -- sandstonestairs + "J: 51: 0", -- fire + "K: 44: 9", -- step + "a: 24: 2", -- sandstone + "b: 24: 0", -- sandstone + "c: 12: 0", -- sand + "d: 4: 0", -- cobblestone + "e: 5: 0", -- planks + "f: 13: 0", -- gravel + "g: 85: 0", -- fence + "h: 5: 1", -- planks + "i: 64: 2", -- wooddoorblock + "j: 64: 0", -- wooddoorblock + "k: 61: 2", -- furnace + "l:118: 0", -- cauldronblock + "m: 19: 0", -- sponge + "n:134: 4", -- sprucewoodstairs + "o: 65: 2", -- ladder + "p:101: 0", -- ironbars + "q: 50: 1", -- torch + "r:140: 0", -- flowerpotblock + "s: 64: 9", -- wooddoorblock + "t: 50: 3", -- torch + "u: 69:12", -- lever + "v: 50: 4", -- torch + "w:128: 6", -- sandstonestairs + "x: 44:10", -- step + "y:128: 1", -- sandstonestairs + "z: 47: 0", -- bookshelf + }, + BlockData = + { + -- Level 0 + "mmmmabbbbbbbamm", -- 0 + "ccccbbbbbbbbbma", -- 1 + "ccccbbbbbbbbbdd", -- 2 + "ccccbbbbbbbbbdd", -- 3 + "ccccbbbbbbbbbdd", -- 4 + "ccccbbbbbbbbbma", -- 5 + "ccccbbbbbbbbbmm", -- 6 + "mmmmbbbbbbbbbmm", -- 7 + "mmmmbbbbbbbbbmm", -- 8 + "mmmmbbbbbbbbbmm", -- 9 + "mmmmabbbbbbbamm", -- 10 + + -- Level 1 + "mmmmabbbbbbbamm", -- 0 + "ccccbeeeeeeebma", -- 1 + "cccceeeeeeeebff", -- 2 + "ccccbeeeeeeeeff", -- 3 + "ccccbeeeeeeebff", -- 4 + "ccccbeeeeeeebma", -- 5 + "ccccbeeeeeeebmm", -- 6 + "mmmmbeeeeeeebmm", -- 7 + "mmmmbeeeeeeebmm", -- 8 + "mmmmbeeeeeeebmm", -- 9 + "mmmmabbbbbbbamm", -- 10 + + -- Level 2 + "mmmmabbbbbbbamm", -- 0 + "ggggb......hb.a", -- 1 + "g...i.......b..", -- 2 + "g...b.......j..", -- 3 + "g...bkln..o.b..", -- 4 + "g...bbbb.bbbb.a", -- 5 + "ggggb.......bmm", -- 6 + "mmmmb.......bmm", -- 7 + "mmmmb.......bmm", -- 8 + "mmmmb.......bmm", -- 9 + "mmmmabbbbbbbamm", -- 10 + + -- Level 3 + "mmmmabbpppbbamm", -- 0 + "....bq.....rb.a", -- 1 + "....s.......b.t", -- 2 + "....b.......s..", -- 3 + "....b.u...o.b.v", -- 4 + "....bbbb.bbbb.a", -- 5 + "....p..t.t..pmm", -- 6 + "mmmmp.......pmm", -- 7 + "mmmmp.......pmm", -- 8 + "mmmmb.......bmm", -- 9 + "mmmmabbpppbbamm", -- 10 + + -- Level 4 + "mmmmabbwwwbbamm", -- 0 + "....bxxxxxxxbby", -- 1 + "....bxxxxxxxb..", -- 2 + "....bxxxxxxxb..", -- 3 + "....bzzzxxAxb..", -- 4 + "....bbbbbbbbbby", -- 5 + "....BxxxxxxxCmm", -- 6 + "mmmmBxxxxxxxCmm", -- 7 + "mmmmBxxxxxxxCmm", -- 8 + "mmmmbxxxxxxxbmm", -- 9 + "mmmmabbDDDbbamm", -- 10 + + -- Level 5 + "mmmmbEEEbEEEbmm", -- 0 + "....EabbbbbaE..", -- 1 + "....Eb.....bE..", -- 2 + "....Eb.....bE..", -- 3 + "....Eb.....bE..", -- 4 + "....babb.bbab..", -- 5 + "....E.......Emm", -- 6 + "mmmmE.......Emm", -- 7 + "mmmmE.......Emm", -- 8 + "mmmmE.......Emm", -- 9 + "mmmmbEEEbEEEbmm", -- 10 + + -- Level 6 + "...............", -- 0 + ".....abbpbba...", -- 1 + ".....p.....p...", -- 2 + ".....p.....p...", -- 3 + ".....p.....p...", -- 4 + ".....abb.bba...", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 7 + "...............", -- 0 + ".....abbwbba...", -- 1 + ".....BxxxxxC...", -- 2 + ".....BxxxxxC...", -- 3 + ".....BxxxxxC...", -- 4 + ".....abbbbba...", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 8 + "...............", -- 0 + ".....bEEbEEb...", -- 1 + ".....E.bbb.E...", -- 2 + ".....b.bbb.b...", -- 3 + ".....E.bbb.E...", -- 4 + ".....bEEbEEb...", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 9 + "...............", -- 0 + "...............", -- 1 + ".......aFa.....", -- 2 + ".......GHy.....", -- 3 + ".......aIa.....", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 10 + "...............", -- 0 + "...............", -- 1 + ".......a.a.....", -- 2 + "........J......", -- 3 + ".......a.a.....", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 11 + "...............", -- 0 + "...............", -- 1 + ".......awa.....", -- 2 + ".......B.C.....", -- 3 + ".......aDa.....", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 12 + "...............", -- 0 + "...............", -- 1 + ".......bbb.....", -- 2 + ".......bKb.....", -- 3 + ".......bbb.....", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + -- Level 13 + "...............", -- 0 + "...............", -- 1 + ".......E.E.....", -- 2 + "...............", -- 3 + ".......E.E.....", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + + }, + }, -- LargeHouse1 + + + + { + OriginData = + { + ExportName = "LittleTower", + Name = "Desert 79", + GalleryName = "Desert", + GalleryIndex = "79", + ID = "595", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 5, + y = 9, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 5, + MaxY = 8, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 2, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 65: 5", -- ladder + "h: 64: 9", -- wooddoorblock + "i:101: 0", -- ironbars + "j: 50: 4", -- torch + "k:128: 2", -- sandstonestairs + "l:126: 8", -- woodenslab + "m: 19: 0", -- sponge + "n:128: 4", -- sandstonestairs + "o:128: 5", -- sandstonestairs + "p:128: 7", -- sandstonestairs + "q:128: 6", -- sandstonestairs + "r: 44: 1", -- step + "s: 96: 1", -- trapdoor + }, + BlockData = + { + -- Level 0 + "abbba", -- 0 + "mbbbm", -- 1 + "accca", -- 2 + "ccccc", -- 3 + "ccccc", -- 4 + "ccccc", -- 5 + "accca", -- 6 + + -- Level 1 + "addda", -- 0 + "mdddm", -- 1 + "aceca", -- 2 + "ceeec", -- 3 + "ceeec", -- 4 + "ceeec", -- 5 + "accca", -- 6 + + -- Level 2 + "a...a", -- 0 + ".....", -- 1 + "acfca", -- 2 + "cg..c", -- 3 + "c...c", -- 4 + "c...c", -- 5 + "accca", -- 6 + + -- Level 3 + "a...a", -- 0 + ".....", -- 1 + "achca", -- 2 + "cg..c", -- 3 + "i...i", -- 4 + "c..jc", -- 5 + "acica", -- 6 + + -- Level 4 + "k...k", -- 0 + "c...c", -- 1 + "accca", -- 2 + "cgllc", -- 3 + "nlllo", -- 4 + "clllc", -- 5 + "acpca", -- 6 + + -- Level 5 + ".....", -- 0 + ".....", -- 1 + "accca", -- 2 + "cg..c", -- 3 + "c...c", -- 4 + "c...c", -- 5 + "accca", -- 6 + + -- Level 6 + ".....", -- 0 + ".....", -- 1 + "acica", -- 2 + "cg..c", -- 3 + "i...i", -- 4 + "c..jc", -- 5 + "acica", -- 6 + + -- Level 7 + ".....", -- 0 + ".....", -- 1 + "acqca", -- 2 + "cgllc", -- 3 + "nlllo", -- 4 + "clllc", -- 5 + "acpca", -- 6 + + -- Level 8 + ".....", -- 0 + ".....", -- 1 + "crcrc", -- 2 + "rs..r", -- 3 + "c...c", -- 4 + "r...r", -- 5 + "crcrc", -- 6 + + }, + }, -- LittleTower + + + + { + OriginData = + { + ExportName = "LargeTower", + Name = "Desert 80", + GalleryName = "Desert", + GalleryIndex = "80", + ID = "596", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 12, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 11, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b: 4: 0", -- cobblestone + "c: 12: 0", -- sand + "d: 5: 0", -- planks + "e: 13: 0", -- gravel + "f:128: 2", -- sandstonestairs + "g:128: 0", -- sandstonestairs + "h: 24: 2", -- sandstone + "i: 71: 3", -- irondoorblock + "j:128: 1", -- sandstonestairs + "k:128: 3", -- sandstonestairs + "l: 77: 4", -- stonebutton + "m: 19: 0", -- sponge + "n: 71: 9", -- irondoorblock + "o: 77: 3", -- stonebutton + "p:128: 6", -- sandstonestairs + "q:128: 4", -- sandstonestairs + "r:128: 5", -- sandstonestairs + "s: 50: 4", -- torch + "t:128: 7", -- sandstonestairs + "u: 85: 0", -- fence + "v: 24: 1", -- sandstone + "w: 44: 1", -- step + "x: 89: 0", -- lightstone + }, + BlockData = + { + -- Level 0 + "mabbbam", -- 0 + "aacdcaa", -- 1 + "madddam", -- 2 + "madddam", -- 3 + "madddam", -- 4 + "aaaaaaa", -- 5 + "mammmam", -- 6 + + -- Level 1 + "maeeeam", -- 0 + "aacdcaa", -- 1 + "madddam", -- 2 + "madddam", -- 3 + "madddam", -- 4 + "aaaaaaa", -- 5 + "mammmam", -- 6 + + -- Level 2 + "mf...fm", -- 0 + "ghaiahj", -- 1 + "ma...am", -- 2 + "ma...am", -- 3 + "ma...am", -- 4 + "ghaaahj", -- 5 + "mkmmmkm", -- 6 + + -- Level 3 + "m.l...m", -- 0 + ".hanah.", -- 1 + ".ao..a.", -- 2 + ".a...a.", -- 3 + ".a...a.", -- 4 + ".haaah.", -- 5 + "m.....m", -- 6 + + -- Level 4 + ".......", -- 0 + "..pap..", -- 1 + ".q...r.", -- 2 + ".a...a.", -- 3 + ".q.s.r.", -- 4 + "..tat..", -- 5 + ".......", -- 6 + + -- Level 5 + ".......", -- 0 + "..aua..", -- 1 + ".a...a.", -- 2 + ".u...u.", -- 3 + ".a...a.", -- 4 + "..aua..", -- 5 + ".......", -- 6 + + -- Level 6 + ".......", -- 0 + "..aua..", -- 1 + ".a...a.", -- 2 + ".u...u.", -- 3 + ".a...a.", -- 4 + "..aua..", -- 5 + ".......", -- 6 + + -- Level 7 + ".......", -- 0 + "..aua..", -- 1 + ".a...a.", -- 2 + ".u...u.", -- 3 + ".a...a.", -- 4 + "..aua..", -- 5 + ".......", -- 6 + + -- Level 8 + ".......", -- 0 + "..faf..", -- 1 + ".g...j.", -- 2 + ".a...a.", -- 3 + ".g...j.", -- 4 + "..kak..", -- 5 + ".......", -- 6 + + -- Level 9 + ".......", -- 0 + ".aavaa.", -- 1 + ".a...a.", -- 2 + ".v...v.", -- 3 + ".a...a.", -- 4 + ".aavaa.", -- 5 + ".......", -- 6 + + -- Level 10 + "...p...", -- 0 + ".haaah.", -- 1 + ".awwwa.", -- 2 + "qawawar", -- 3 + ".awwwa.", -- 4 + ".haaah.", -- 5 + "...t...", -- 6 + + -- Level 11 + "...w...", -- 0 + ".w...w.", -- 1 + ".......", -- 2 + "w..x..w", -- 3 + ".......", -- 4 + ".w...w.", -- 5 + "...w...", -- 6 + + }, + }, -- LargeTower + + + + { + OriginData = + { + ExportName = "BarWithoutBasement", + Name = "Desert 81", + GalleryName = "Desert", + GalleryIndex = "81", + ID = "597", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 11, + y = 9, + z = 10, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 8, + MaxZ = 10, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "80", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A:126: 8", -- woodenslab + "B:128: 7", -- sandstonestairs + "C: 44: 1", -- step + "D: 64: 3", -- wooddoorblock + "E:128: 6", -- sandstonestairs + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f:128: 5", -- sandstonestairs + "g:107: 0", -- fencegate + "h:128: 4", -- sandstonestairs + "i:134: 1", -- sprucewoodstairs + "j:134: 3", -- sprucewoodstairs + "k: 85: 0", -- fence + "l:134: 0", -- sprucewoodstairs + "m: 19: 0", -- sponge + "n:134: 5", -- sprucewoodstairs + "o:134: 7", -- sprucewoodstairs + "p:134: 4", -- sprucewoodstairs + "q:107: 3", -- fencegate + "r: 64: 1", -- wooddoorblock + "s: 65: 3", -- ladder + "t: 50: 3", -- torch + "u:171: 8", -- carpet + "v:101: 0", -- ironbars + "w: 64: 9", -- wooddoorblock + "x:128: 2", -- sandstonestairs + "y: 24: 1", -- sandstone + "z: 44: 9", -- step + }, + BlockData = + { + -- Level 0 + "mmmabbbammm", -- 0 + "mmmmbbbmmmm", -- 1 + "accccccccca", -- 2 + "ccccccccccc", -- 3 + "ccccccccccc", -- 4 + "ccccccccccc", -- 5 + "ccccccccccc", -- 6 + "ccccccccccc", -- 7 + "accccccccca", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 1 + "mmmadddammm", -- 0 + "mmmmdddmmmm", -- 1 + "accceeeccca", -- 2 + "ceeeeeeeeec", -- 3 + "ceeeeeeeeec", -- 4 + "ceeeeeeeeec", -- 5 + "ceeeeeeeeec", -- 6 + "ceeeeeeeeec", -- 7 + "aecccccccca", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 2 + "mmma...ammm", -- 0 + "mmm.....mmm", -- 1 + "acccfghccca", -- 2 + "cij.....jjc", -- 3 + "cik.....klc", -- 4 + "c.........c", -- 5 + "cnoop.....c", -- 6 + "c...q..iklc", -- 7 + "arcccccccca", -- 8 + "mmsmmmmmmmm", -- 9 + + -- Level 3 + "mmma...ammm", -- 0 + "mmm.....mmm", -- 1 + "accc...ccca", -- 2 + "c..t...t..c", -- 3 + "c.u.....u.c", -- 4 + "v.........v", -- 5 + "c.........c", -- 6 + "c.......u.c", -- 7 + "awccvvvccca", -- 8 + "mmsmmmmmmmm", -- 9 + + -- Level 4 + "mmmx...xmmm", -- 0 + "mmmy...cmmm", -- 1 + "acccfzhccca", -- 2 + "cAAAAAAAAAc", -- 3 + "cAAAAAAAAAc", -- 4 + "hAAAAAAAAAf", -- 5 + "cAAAAAAAAAc", -- 6 + "cAAAAAAAAAc", -- 7 + "acccBBBccca", -- 8 + "mmsmmmmmmmm", -- 9 + + -- Level 5 + "mmm.....mmm", -- 0 + "mmm.....mmm", -- 1 + "cCCCCcCCCCc", -- 2 + "CacccccccaC", -- 3 + "Cc.......cC", -- 4 + "cc.......cc", -- 5 + "Cc.......cC", -- 6 + "CaDccccccaC", -- 7 + "cC.CCcCCCCc", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + ".accvvvcca.", -- 3 + ".c.......c.", -- 4 + ".v.......v.", -- 5 + ".c.......c.", -- 6 + ".awcvvvcca.", -- 7 + "...........", -- 8 + "...........", -- 9 + + -- Level 7 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + ".accEEEcca.", -- 3 + ".cAAAAAAAc.", -- 4 + ".hAAAAAAAf.", -- 5 + ".cAAAAAAAc.", -- 6 + ".accBBBcca.", -- 7 + "...........", -- 8 + "...........", -- 9 + + -- Level 8 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + ".cCCCcCCCc.", -- 3 + ".C.......C.", -- 4 + ".c.......c.", -- 5 + ".C.......C.", -- 6 + ".cCCCcCCCc.", -- 7 + "...........", -- 8 + "...........", -- 9 + + }, + }, -- BarWithoutBasement + + + + { + OriginData = + { + ExportName = "BarWithBasement", + Name = "Desert 82", + GalleryName = "Desert", + GalleryIndex = "82", + ID = "598", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 11, + y = 12, + z = 10, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 11, + MaxZ = 10, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 5, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "70", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A: 65: 3", -- ladder + "B: 50: 3", -- torch + "C:171: 8", -- carpet + "D:101: 0", -- ironbars + "E: 64: 9", -- wooddoorblock + "F:128: 2", -- sandstonestairs + "G: 24: 1", -- sandstone + "H: 44: 9", -- step + "I:126: 8", -- woodenslab + "J:128: 7", -- sandstonestairs + "K: 44: 1", -- step + "L: 64: 3", -- wooddoorblock + "M:128: 6", -- sandstonestairs + "a: 24: 2", -- sandstone + "b: 1: 0", -- stone + "c: 24: 0", -- sandstone + "d: 12: 0", -- sand + "e:134: 4", -- sprucewoodstairs + "f: 5: 1", -- planks + "g:134: 5", -- sprucewoodstairs + "h: 65: 5", -- ladder + "i: 17: 3", -- tree + "j: 69:11", -- lever + "k: 4: 0", -- cobblestone + "l:134: 0", -- sprucewoodstairs + "m: 19: 0", -- sponge + "n:134: 1", -- sprucewoodstairs + "o: 50: 4", -- torch + "p: 13: 0", -- gravel + "q: 5: 0", -- planks + "r: 96: 8", -- trapdoor + "s:128: 5", -- sandstonestairs + "t:107: 2", -- fencegate + "u:128: 4", -- sandstonestairs + "v:134: 3", -- sprucewoodstairs + "w: 85: 0", -- fence + "x:134: 7", -- sprucewoodstairs + "y:107: 1", -- fencegate + "z: 64: 1", -- wooddoorblock + }, + BlockData = + { + -- Level 0 + "mmmabbbammm", -- 0 + "mcccccccccm", -- 1 + "abcccccccba", -- 2 + "cbcccccccbc", -- 3 + "cbcccccccbc", -- 4 + "cbcccccccbc", -- 5 + "cbcccccccbc", -- 6 + "cbcccccccbc", -- 7 + "abbbbbbbbba", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 1 + "mmmadddammm", -- 0 + "mcccccccccm", -- 1 + "acefg.efgca", -- 2 + "ccefg.efgcc", -- 3 + "ccefg.efgcc", -- 4 + "cc.......cc", -- 5 + "cc.......cc", -- 6 + "cch......cc", -- 7 + "accccccccca", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 2 + "mmmadddammm", -- 0 + "mcccccccccm", -- 1 + "acfff.fffca", -- 2 + "ccfff.fffcc", -- 3 + "ccfif.fifcc", -- 4 + "cc.j...j.cc", -- 5 + "cc.......cc", -- 6 + "cch......cc", -- 7 + "accccccccca", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 3 + "mmmakkkammm", -- 0 + "mcccccccccm", -- 1 + "aclfn.lfnca", -- 2 + "cclfn.lfncc", -- 3 + "cclfn.lfncc", -- 4 + "cc.......cc", -- 5 + "cc.......cc", -- 6 + "cch..o...cc", -- 7 + "accccccccca", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 4 + "mmmapppammm", -- 0 + "mmmmpppmmmm", -- 1 + "acccqqqccca", -- 2 + "cqqqqqqqqqc", -- 3 + "cqqqqqqqqqc", -- 4 + "cqqqqqqqqqc", -- 5 + "cqqqqqqqqqc", -- 6 + "cqrqqqqqqqc", -- 7 + "aqcccccccca", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 5 + "mmma...ammm", -- 0 + "mmm.....mmm", -- 1 + "acccstuccca", -- 2 + "cnv.....vvc", -- 3 + "cnw.....wlc", -- 4 + "c.........c", -- 5 + "cgxxe.....c", -- 6 + "c...y..nwlc", -- 7 + "azcccccccca", -- 8 + "mmAmmmmmmmm", -- 9 + + -- Level 6 + "mmma...ammm", -- 0 + "mmm.....mmm", -- 1 + "accc...ccca", -- 2 + "c..B...B..c", -- 3 + "c.C.....C.c", -- 4 + "D.........D", -- 5 + "c.........c", -- 6 + "c.......C.c", -- 7 + "aEccDDDccca", -- 8 + "mmAmmmmmmmm", -- 9 + + -- Level 7 + "mmmF...Fmmm", -- 0 + "mmmG...cmmm", -- 1 + "acccsHuccca", -- 2 + "cIIIIIIIIIc", -- 3 + "cIIIIIIIIIc", -- 4 + "uIIIIIIIIIs", -- 5 + "cIIIIIIIIIc", -- 6 + "cIIIIIIIIIc", -- 7 + "acccJJJccca", -- 8 + "mmAmmmmmmmm", -- 9 + + -- Level 8 + "mmm.....mmm", -- 0 + "mmm.....mmm", -- 1 + "cKKKKcKKKKc", -- 2 + "KacccccccaK", -- 3 + "Kc.......cK", -- 4 + "cc.......cc", -- 5 + "Kc.......cK", -- 6 + "KaLccccccaK", -- 7 + "cK.KKcKKKKc", -- 8 + "mmmmmmmmmmm", -- 9 + + -- Level 9 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + ".accDDDcca.", -- 3 + ".c.......c.", -- 4 + ".D.......D.", -- 5 + ".c.......c.", -- 6 + ".aEcDDDcca.", -- 7 + "...........", -- 8 + "...........", -- 9 + + -- Level 10 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + ".accMMMcca.", -- 3 + ".cIIIIIIIc.", -- 4 + ".uIIIIIIIs.", -- 5 + ".cIIIIIIIc.", -- 6 + ".accJJJcca.", -- 7 + "...........", -- 8 + "...........", -- 9 + + -- Level 11 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + ".cKKKcKKKc.", -- 3 + ".K.......K.", -- 4 + ".c.......c.", -- 5 + ".K.......K.", -- 6 + ".cKKKcKKKc.", -- 7 + "...........", -- 8 + "...........", -- 9 + + }, + }, -- BarWithBasement + + + + { + OriginData = + { + ExportName = "Temple", + Name = "Desert 83", + GalleryName = "Desert", + GalleryIndex = "83", + ID = "599", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 13, + y = 10, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 13, + MaxY = 9, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "50", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A: 51: 0", -- fire + "B: 44: 9", -- step + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 3", -- wooddoorblock + "g: 17: 0", -- tree + "h:128: 5", -- sandstonestairs + "i:128: 4", -- sandstonestairs + "j:128: 7", -- sandstonestairs + "k:128: 6", -- sandstonestairs + "l:118: 3", -- cauldronblock + "m: 19: 0", -- sponge + "n:155: 1", -- quartzblock + "o: 64: 9", -- wooddoorblock + "p: 50: 3", -- torch + "q:101: 0", -- ironbars + "r:140: 0", -- flowerpotblock + "s: 24: 1", -- sandstone + "t:128: 2", -- sandstonestairs + "u:126: 8", -- woodenslab + "v: 44: 1", -- step + "w:128: 0", -- sandstonestairs + "x: 87: 0", -- netherstone + "y:128: 1", -- sandstonestairs + "z:128: 3", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmmmabbbammmm", -- 0 + "mmmmmbbbmmmmm", -- 1 + "accccccccccca", -- 2 + "ccccccccccccc", -- 3 + "ccccccccccccc", -- 4 + "ccccccccccccc", -- 5 + "ccccccccccccc", -- 6 + "ccccccccccccc", -- 7 + "accccccccccca", -- 8 + + -- Level 1 + "mmmmadddammmm", -- 0 + "mmmmmdddmmmmm", -- 1 + "accccceccccca", -- 2 + "ceeeeeeeeeeec", -- 3 + "ceeeeeeeeeeec", -- 4 + "ceeeeeeeeeeec", -- 5 + "ceeeeeeeeeeec", -- 6 + "ceeeeeeeeeeec", -- 7 + "accccccccccca", -- 8 + + -- Level 2 + "mmmma...ammmm", -- 0 + "mmmm.....mmmm", -- 1 + "acccccfccccca", -- 2 + "cgh.......igc", -- 3 + "cj.........jc", -- 4 + "c...........c", -- 5 + "ck.........kc", -- 6 + "cgh.linhl.igc", -- 7 + "accccccccccca", -- 8 + + -- Level 3 + "mmmma...ammmm", -- 0 + "mmmm.....mmmm", -- 1 + "acccccoccccca", -- 2 + "cg...p.p...gc", -- 3 + "c...........c", -- 4 + "q...........q", -- 5 + "c...........c", -- 6 + "cg...rsr...gc", -- 7 + "acqqqcccqqqca", -- 8 + + -- Level 4 + "mmmmt...tmmmm", -- 0 + "mmmms...cmmmm", -- 1 + "accccccccccca", -- 2 + "cguuuuuuuuugc", -- 3 + "cuuuuuuuuuuuc", -- 4 + "iuuuuuuuuuuuh", -- 5 + "cuuuuuuuuuuuc", -- 6 + "cguuuuuuuuugc", -- 7 + "acjjjcccjjjca", -- 8 + + -- Level 5 + "mmmm.....mmmm", -- 0 + "mmmm.....mmmm", -- 1 + "cvvvvvcvvvvvc", -- 2 + "v...........v", -- 3 + "v.ccc...ccc.v", -- 4 + "c.ccc...ccc.c", -- 5 + "v.ccc...ccc.v", -- 6 + "v...........v", -- 7 + "cvvvvvcvvvvvc", -- 8 + + -- Level 6 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + "..ata...ata..", -- 4 + "..wxy...wxy..", -- 5 + "..aza...aza..", -- 6 + ".............", -- 7 + ".............", -- 8 + + -- Level 7 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + "..a.a...a.a..", -- 4 + "...A.....A...", -- 5 + "..a.a...a.a..", -- 6 + ".............", -- 7 + ".............", -- 8 + + -- Level 8 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + "..ccc...ccc..", -- 4 + "..cBc...cBc..", -- 5 + "..ccc...ccc..", -- 6 + ".............", -- 7 + ".............", -- 8 + + -- Level 9 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + "..v.v...v.v..", -- 4 + ".............", -- 5 + "..v.v...v.v..", -- 6 + ".............", -- 7 + ".............", -- 8 + + }, + }, -- Temple + + + + { + OriginData = + { + ExportName = "Well", + Name = "Desert 90", + GalleryName = "Desert", + GalleryIndex = "90", + ID = "631", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 21, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 20, + MaxZ = 6, + }, + Connectors = + { + { + Type = 2, + RelX = 3, + RelY = 16, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 0, + RelY = 16, + RelZ = 3, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 3, + RelY = 16, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 2, + RelX = 6, + RelY = 16, + RelZ = 3, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 24: 2", -- sandstone + "c: 24: 0", -- sandstone + "d: 8: 0", -- water + "e: 4: 0", -- cobblestone + "f: 13: 0", -- gravel + "g:128: 1", -- sandstonestairs + "h: 44: 1", -- step + "i:128: 0", -- sandstonestairs + "j:128: 3", -- sandstonestairs + "k:128: 2", -- sandstonestairs + "l: 44: 9", -- step + "m: 19: 0", -- sponge + "n:126: 0", -- woodenslab + }, + BlockData = + { + -- Level 0 + "mmmmmmm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 2 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 3 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 4 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 5 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 6 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 7 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 8 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 9 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 10 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 11 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 12 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 13 + "mmmmmmm", -- 0 + "mbcccbm", -- 1 + "mcdddcm", -- 2 + "mcdddcm", -- 3 + "mcdddcm", -- 4 + "mbcccbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 14 + "mmeeemm", -- 0 + "mbcccbm", -- 1 + "ecdddce", -- 2 + "ecdddce", -- 3 + "ecdddce", -- 4 + "mbcccbm", -- 5 + "mmeeemm", -- 6 + + -- Level 15 + "mmfffmm", -- 0 + "mbcccbm", -- 1 + "fcdddcf", -- 2 + "fcdddcf", -- 3 + "fcdddcf", -- 4 + "mbcccbm", -- 5 + "mmfffmm", -- 6 + + -- Level 16 + "mm...mm", -- 0 + "mbghibm", -- 1 + ".j...j.", -- 2 + ".h...h.", -- 3 + ".k...k.", -- 4 + "mbghibm", -- 5 + "mm...mm", -- 6 + + -- Level 17 + "mm...mm", -- 0 + "mb...bm", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + "mb...bm", -- 5 + "mm...mm", -- 6 + + -- Level 18 + "mm...mm", -- 0 + "mblllbm", -- 1 + ".l...l.", -- 2 + ".l...l.", -- 3 + ".l...l.", -- 4 + "mblllbm", -- 5 + "mm...mm", -- 6 + + -- Level 19 + "mm...mm", -- 0 + "mcccccm", -- 1 + ".cnnnc.", -- 2 + ".cnnnc.", -- 3 + ".cnnnc.", -- 4 + "mcccccm", -- 5 + "mm...mm", -- 6 + + -- Level 20 + "mm...mm", -- 0 + "mh.h.hm", -- 1 + ".......", -- 2 + ".h...h.", -- 3 + ".......", -- 4 + "mh.h.hm", -- 5 + "mm...mm", -- 6 + + }, + }, -- Well + + + + { + OriginData = + { + ExportName = "BlackSmith", + Name = "Desert 97", + GalleryName = "Desert", + GalleryIndex = "97", + ID = "642", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 11, + y = 6, + z = 13, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 5, + MaxZ = 13, + }, + Connectors = + { + { + Type = -1, + RelX = 8, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "0", + ["DefaultWeight"] = "50", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 4: 0", -- cobblestone + "c: 24: 0", -- sandstone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 12: 0", -- sand + "g: 64: 3", -- wooddoorblock + "h: 43: 0", -- doublestep + "i: 53: 5", -- woodstairs + "j: 53: 4", -- woodstairs + "k: 10: 0", -- lava + "l: 54: 5", -- chest + "m: 19: 0", -- sponge + "n: 64: 9", -- wooddoorblock + "o: 50: 3", -- torch + "p:101: 0", -- ironbars + "q: 50: 1", -- torch + "r: 50: 2", -- torch + "s:128: 2", -- sandstonestairs + "t: 44: 9", -- step + "u:126: 8", -- woodenslab + "v:128: 4", -- sandstonestairs + "w:128: 5", -- sandstonestairs + "x:128: 7", -- sandstonestairs + "y: 44: 1", -- step + "z: 43: 1", -- doublestep + }, + BlockData = + { + -- Level 0 + "mmmmmmabbba", -- 0 + "mmmmmmbbbbm", -- 1 + "mmmmmmaccca", -- 2 + "maccccccccc", -- 3 + "mcccccccccc", -- 4 + "mcccccccccc", -- 5 + "mcccccacccc", -- 6 + "mcccccacccc", -- 7 + "acccaaacccc", -- 8 + "ccccccccccc", -- 9 + "ccccccccccc", -- 10 + "ccccccccccc", -- 11 + "accccccccca", -- 12 + + -- Level 1 + "mmmmmmaddda", -- 0 + "mmmmmmddddm", -- 1 + "mmmmmmaceca", -- 2 + "mafcfcceeec", -- 3 + "mcfccfceeec", -- 4 + "mcccccceeec", -- 5 + "mcffaaaeeec", -- 6 + "mffcaaaeeec", -- 7 + "acccaaaeeec", -- 8 + "ceeeeeeeeec", -- 9 + "ceeeeeeeeec", -- 10 + "ceeeeeeeeec", -- 11 + "accccccccca", -- 12 + + -- Level 2 + "mmmmmma...a", -- 0 + "mmmmmm.....", -- 1 + "mmmmmmacgca", -- 2 + "ma....c...c", -- 3 + "m.h...c...c", -- 4 + "m.....c...c", -- 5 + "m...aac...c", -- 6 + "mij.akc...c", -- 7 + "accccca...c", -- 8 + "cl........c", -- 9 + "c.........c", -- 10 + "c.........c", -- 11 + "accccccccca", -- 12 + + -- Level 3 + "mmmmmma...a", -- 0 + "mmmmmm.....", -- 1 + "mmmmmmacnca", -- 2 + "ma....c..oc", -- 3 + "m.....p...c", -- 4 + "m.....c...c", -- 5 + "m...ppc...p", -- 6 + "m...p.c...p", -- 7 + "accccca...p", -- 8 + "cq........c", -- 9 + "p.........c", -- 10 + "c........rc", -- 11 + "acccpppccca", -- 12 + + -- Level 4 + "mmmmmms...s", -- 0 + "mmmmmmc...c", -- 1 + "mmmmmmaccca", -- 2 + "mattttcuuuc", -- 3 + "mtuuuuvuuuc", -- 4 + "mtuuuucuuuc", -- 5 + "mtuuaacuuuw", -- 6 + "mtuua.cuuuw", -- 7 + "acccccauuuw", -- 8 + "cuuuuuuuuuc", -- 9 + "vuuuuuuuuuc", -- 10 + "cuuuuuuuuuc", -- 11 + "acccxxxccca", -- 12 + + -- Level 5 + "mmmmmm.....", -- 0 + "mmmmmm.....", -- 1 + "mmmmmmcyyyc", -- 2 + "my.y.yy...y", -- 3 + "m.....y...y", -- 4 + "my....y...y", -- 5 + "m...zyz...y", -- 6 + "my..y.y...c", -- 7 + "cyyyzyc...y", -- 8 + "y.........y", -- 9 + "y.........y", -- 10 + "y.........y", -- 11 + "cyyyycyyyyc", -- 12 + + }, + }, -- BlackSmith + + + + { + OriginData = + { + ExportName = "LittleHouse8", + Name = "Desert 99", + GalleryName = "Desert", + GalleryIndex = "99", + ID = "739", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 9, + y = 6, + z = 9, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = -1, + MaxX = 9, + MaxY = 5, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 0, + RelY = 2, + RelZ = 2, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 2", -- sandstone + "b: 24: 0", -- sandstone + "c: 4: 0", -- cobblestone + "d: 13: 0", -- gravel + "e: 5: 0", -- planks + "f: 64: 2", -- wooddoorblock + "g: 65: 2", -- ladder + "h:101: 0", -- ironbars + "i: 64: 9", -- wooddoorblock + "j: 50: 1", -- torch + "k:128: 6", -- sandstonestairs + "l:126: 8", -- woodenslab + "m: 19: 0", -- sponge + "n:128: 5", -- sandstonestairs + "o:128: 4", -- sandstonestairs + "p:128: 7", -- sandstonestairs + "q: 44: 1", -- step + "r: 96: 2", -- trapdoor + }, + BlockData = + { + -- Level 0 + "mmmmabbba", -- 0 + "ccccbbbbb", -- 1 + "ccccbbbbb", -- 2 + "ccccbbbbb", -- 3 + "abbbabbbb", -- 4 + "bbbbbbbbb", -- 5 + "bbbbbbbbb", -- 6 + "bbbbbbbbb", -- 7 + "abbbbbbba", -- 8 + + -- Level 1 + "mmmmabbba", -- 0 + "ddddbeeeb", -- 1 + "ddddeeeeb", -- 2 + "ddddbeeeb", -- 3 + "abbbaeeeb", -- 4 + "beeeeeeeb", -- 5 + "beeeeeeeb", -- 6 + "beeeeeeeb", -- 7 + "abbbbbbba", -- 8 + + -- Level 2 + "mmmmabbba", -- 0 + "....b...b", -- 1 + "....f...b", -- 2 + "....b...b", -- 3 + "abbba...b", -- 4 + "b.......b", -- 5 + "b.......b", -- 6 + "b......gb", -- 7 + "abbbbbbba", -- 8 + + -- Level 3 + "mmmmabhba", -- 0 + "....b...b", -- 1 + "....i...b", -- 2 + "....b...h", -- 3 + "abhbaj..h", -- 4 + "b.......h", -- 5 + "h.......b", -- 6 + "b......gb", -- 7 + "abbhhhbba", -- 8 + + -- Level 4 + "mmmmabkba", -- 0 + "....blllb", -- 1 + "....blllb", -- 2 + "....bllln", -- 3 + "abkballln", -- 4 + "bllllllln", -- 5 + "olllllllb", -- 6 + "bllllllgb", -- 7 + "abbpppbba", -- 8 + + -- Level 5 + "mmmmbqbqb", -- 0 + "....q...q", -- 1 + "....q...q", -- 2 + "....q...q", -- 3 + "bqqqb...b", -- 4 + "q.......q", -- 5 + "b.......q", -- 6 + "q......rq", -- 7 + "bqqqbqqqb", -- 8 + + }, + }, -- LittleHouse8 + }, -- Pieces +} + + + + diff --git a/MCServer/Prefabs/Villages/JapaneseVillage.cubeset b/MCServer/Prefabs/Villages/JapaneseVillage.cubeset new file mode 100644 index 000000000..b3e545e52 --- /dev/null +++ b/MCServer/Prefabs/Villages/JapaneseVillage.cubeset @@ -0,0 +1,3467 @@ + +-- JapaneseVillage.cubeset + +-- Defines the prefabs in the group JapaneseVillage + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2015-06-20 10:17:02", + ["AllowedBiomes"] = "Plains, Savanna, SavannaM, SunflowerPlains", + ["IntendedUse"] = "Village", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "Restaurant", + Name = "Plains 61", + GalleryName = "Plains", + GalleryIndex = "61", + ID = "117", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 15, + y = 10, + z = 15, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 14, + MaxY = 9, + MaxZ = 15, + }, + Connectors = + { + { + Type = -1, + RelX = 14, + RelY = 1, + RelZ = 7, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b:135: 0", -- whitewoodstairs + "c:135: 2", -- whitewoodstairs + "d:135: 1", -- whitewoodstairs + "e: 17: 9", -- tree + "f:135: 3", -- whitewoodstairs + "g: 85: 0", -- fence + "h: 17: 1", -- tree + "i:171: 0", -- carpet + "j:171:12", -- carpet + "k:126: 1", -- woodenslab + "l: 50: 5", -- torch + "m: 19: 0", -- sponge + "n: 35: 0", -- wool + "o: 50: 3", -- torch + "p: 50: 1", -- torch + "q: 50: 4", -- torch + "r: 35:14", -- wool + "s: 44: 8", -- step + "t: 43: 0", -- doublestep + "u: 44: 0", -- step + "v: 17: 5", -- tree + }, + BlockData = + { + -- Level 0 + "mmmmaaaaaaammmm", -- 0 + "maaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaam", -- 3 + "aaaaaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaaaaa", -- 5 + "aaaaaaaaaaaaaaa", -- 6 + "aaaaaaaaaaaaaaa", -- 7 + "aaaaaaaaaaaaaaa", -- 8 + "aaaaaaaaaaaaaaa", -- 9 + "aaaaaaaaaaaaaaa", -- 10 + "maaaaaaaaaaaaam", -- 11 + "maaaaaaaaaaaaam", -- 12 + "maaaaaaaaaaaaam", -- 13 + "mmmmaaaaaaammmm", -- 14 + + -- Level 1 + "....bcccccd....", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaa.", -- 3 + "caaaaaaaaaaaaac", -- 4 + "baaaaaaaaaaaaad", -- 5 + "baaaaaaaaaaaaad", -- 6 + "baaaaaaaaaaeaad", -- 7 + "baaaaaaaaaaaaad", -- 8 + "baaaaaaaaaaaaad", -- 9 + "faaaaaaaaaaaaaf", -- 10 + ".aaaaaaaaaaaaa.", -- 11 + ".aaaaaaaaaaaaa.", -- 12 + ".aaaaaaaaaaaaa.", -- 13 + "....bfffffd....", -- 14 + + -- Level 2 + "...............", -- 0 + ".gggg.....gggg.", -- 1 + ".g...........g.", -- 2 + ".g.hhhhhhhhh.g.", -- 3 + ".g.hiiijiiih.g.", -- 4 + "...hikijikih...", -- 5 + "...hiiijiiihg..", -- 6 + "...hjjjjjjj....", -- 7 + "...hiiijiiihg..", -- 8 + "...hikijikih...", -- 9 + ".g.hiiijiiih.g.", -- 10 + ".g.hhhhhhhhh.g.", -- 11 + ".g...........g.", -- 12 + ".gggg.....gggg.", -- 13 + "...............", -- 14 + + -- Level 3 + "...............", -- 0 + ".l..g.....g..l.", -- 1 + "...............", -- 2 + "...hnnnhnnnh...", -- 3 + ".g.n.......n.g.", -- 4 + "...n.......n...", -- 5 + "...n.......hl..", -- 6 + "...h...........", -- 7 + "...n.......hl..", -- 8 + "...n.......n...", -- 9 + ".g.n.......n.g.", -- 10 + "...hnnnhnnnh...", -- 11 + "...............", -- 12 + ".l..g.....g..l.", -- 13 + "...............", -- 14 + + -- Level 4 + "...............", -- 0 + "....g.....g....", -- 1 + "...............", -- 2 + "...hn.nhn.nh...", -- 3 + ".g.n...o...n.g.", -- 4 + "...n.......n...", -- 5 + "...n.......h...", -- 6 + "...hp......e...", -- 7 + "...n.......h...", -- 8 + "...n.......n...", -- 9 + ".g.n...q...n.g.", -- 10 + "...hn.nhn.nh...", -- 11 + "...............", -- 12 + "....g.....g....", -- 13 + "...............", -- 14 + + -- Level 5 + "...............", -- 0 + "....g.....g....", -- 1 + "....ggggggg....", -- 2 + "...hnnnhnnnh...", -- 3 + ".ggn.......ngg.", -- 4 + "..gn.......ng..", -- 5 + "..gn.......hg..", -- 6 + "..gh..r.r..ng..", -- 7 + "..gn.......hg..", -- 8 + "..gn.......ng..", -- 9 + ".ggn.......ngg.", -- 10 + "...hnnnhnnnh...", -- 11 + "....ggggggg....", -- 12 + "....g.....g....", -- 13 + "...............", -- 14 + + -- Level 6 + "...............", -- 0 + "...stuuuuuts...", -- 1 + "..sttttttttts..", -- 2 + ".sthvvvhvvvhts.", -- 3 + ".tte.......ett.", -- 4 + ".ute.......etu.", -- 5 + ".ute.......htu.", -- 6 + ".uth..g.g..etu.", -- 7 + ".ute.......htu.", -- 8 + ".ute.......etu.", -- 9 + ".tte.......ett.", -- 10 + ".sthvvvhvvvhts.", -- 11 + "..sttttttttts..", -- 12 + "...stuuuuuts...", -- 13 + "...............", -- 14 + + -- Level 7 + "...............", -- 0 + ".stu.......uts.", -- 1 + ".tu.........ut.", -- 2 + ".u.uuuuuuuuu.u.", -- 3 + "...utttttttu...", -- 4 + "...utttttttu...", -- 5 + "...utttttttu...", -- 6 + "...utttttttu...", -- 7 + "...utttttttu...", -- 8 + "...utttttttu...", -- 9 + "...utttttttu...", -- 10 + ".u.uuuuuuuuu.u.", -- 11 + ".tu.........ut.", -- 12 + ".stu.......uts.", -- 13 + "...............", -- 14 + + -- Level 8 + "...............", -- 0 + ".u...........u.", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + ".....uuuuu.....", -- 5 + ".....utttu.....", -- 6 + ".....utttu.....", -- 7 + ".....utttu.....", -- 8 + ".....uuuuu.....", -- 9 + "...............", -- 10 + "...............", -- 11 + "...............", -- 12 + ".u...........u.", -- 13 + "...............", -- 14 + + -- Level 9 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + ".......u.......", -- 7 + "...............", -- 8 + "...............", -- 9 + "...............", -- 10 + "...............", -- 11 + "...............", -- 12 + "...............", -- 13 + "...............", -- 14 + + }, + }, -- Restaurant + + + + { + OriginData = + { + ExportName = "HouseMid", + Name = "Plains 62", + GalleryName = "Plains", + GalleryIndex = "62", + ID = "119", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 10, + y = 9, + z = 9, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = -1, + MaxX = 10, + MaxY = 8, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 0, + RelY = 1, + RelZ = 4, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b:135: 2", -- whitewoodstairs + "c:135: 0", -- whitewoodstairs + "d: 17: 9", -- tree + "e:135: 3", -- whitewoodstairs + "f: 85: 0", -- fence + "g: 17: 1", -- tree + "h:171: 0", -- carpet + "i: 50: 5", -- torch + "j: 35: 0", -- wool + "k: 17: 5", -- tree + "l:124: 0", -- redstonelampon + "m: 19: 0", -- sponge + "n: 69: 9", -- lever + "o: 44: 8", -- step + "p: 43: 0", -- doublestep + "q: 44: 0", -- step + }, + BlockData = + { + -- Level 0 + "maaaaaaaaa", -- 0 + "maaaaaaaaa", -- 1 + "aaaaaaaaaa", -- 2 + "aaaaaaaaaa", -- 3 + "aaaaaaaaaa", -- 4 + "aaaaaaaaaa", -- 5 + "aaaaaaaaaa", -- 6 + "maaaaaaaaa", -- 7 + "maaaaaaaaa", -- 8 + + -- Level 1 + ".aaaaaaaaa", -- 0 + ".aaaaaaaaa", -- 1 + "baaaaaaaaa", -- 2 + "caaaaaaaaa", -- 3 + "caadaaaaaa", -- 4 + "caaaaaaaaa", -- 5 + "eaaaaaaaaa", -- 6 + ".aaaaaaaaa", -- 7 + ".aaaaaaaaa", -- 8 + + -- Level 2 + ".fffffffff", -- 0 + ".f.......f", -- 1 + ".f.ggggg.f", -- 2 + "...ghhhg.f", -- 3 + "....hhhg.f", -- 4 + "...ghhhg.f", -- 5 + ".f.ggggg.f", -- 6 + ".f.......f", -- 7 + ".fffffffff", -- 8 + + -- Level 3 + ".....i...i", -- 0 + "..........", -- 1 + ".i.jjgjj..", -- 2 + "...g...j..", -- 3 + ".......g.i", -- 4 + "...g...j..", -- 5 + ".i.jjgjj..", -- 6 + "..........", -- 7 + ".....i...i", -- 8 + + -- Level 4 + "..........", -- 0 + "..........", -- 1 + "...jjgjj..", -- 2 + "...g...j..", -- 3 + "...j...g..", -- 4 + "...g...j..", -- 5 + "...jjgjj..", -- 6 + "..........", -- 7 + "..........", -- 8 + + -- Level 5 + "..........", -- 0 + "...f...f..", -- 1 + "..fgkgkgf.", -- 2 + "..fd...d..", -- 3 + "...d.lng..", -- 4 + "..fd...d..", -- 5 + "..fgkgkgf.", -- 6 + "...f...f..", -- 7 + "..........", -- 8 + + -- Level 6 + "...ooooo..", -- 0 + "..opppppo.", -- 1 + ".opgjjjgpo", -- 2 + ".opjgggjpo", -- 3 + ".opjgggjpo", -- 4 + ".opjgggjpo", -- 5 + ".opgjjjgpo", -- 6 + "..opppppo.", -- 7 + "...ooooo..", -- 8 + + -- Level 7 + ".opq...qpo", -- 0 + ".pq.....qp", -- 1 + ".q.qqqqq.q", -- 2 + "...qpppq..", -- 3 + "...qpppq..", -- 4 + "...qpppq..", -- 5 + ".q.qqqqq.q", -- 6 + ".pq.....qp", -- 7 + ".opq...qpo", -- 8 + + -- Level 8 + ".q.......q", -- 0 + "..........", -- 1 + "..........", -- 2 + "..........", -- 3 + ".....q....", -- 4 + "..........", -- 5 + "..........", -- 6 + "..........", -- 7 + ".q.......q", -- 8 + + }, + }, -- HouseMid + + + + { + OriginData = + { + ExportName = "HouseWide", + Name = "Plains 64", + GalleryName = "Plains", + GalleryIndex = "64", + ID = "121", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 11, + y = 6, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 11, + MaxY = 5, + MaxZ = 10, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 10, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b: 17: 1", -- tree + "c: 35: 0", -- wool + "d:171: 0", -- carpet + "e:126: 1", -- woodenslab + "f: 64: 1", -- wooddoorblock + "g: 85: 0", -- fence + "h: 50: 1", -- torch + "i: 50: 2", -- torch + "j: 64: 9", -- wooddoorblock + "k:126:11", -- woodenslab + "l: 17: 5", -- tree + "m: 19: 0", -- sponge + "n:126: 3", -- woodenslab + "o:125: 3", -- woodendoubleslab + "p: 5: 3", -- planks + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmm", -- 0 + "mmaaaaaaamm", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "maaaaaaaaam", -- 8 + "mmaaaaaaamm", -- 9 + "mmmmmmmmmmm", -- 10 + + -- Level 1 + "...........", -- 0 + "..bcbcbcb..", -- 1 + ".b.d.....b.", -- 2 + ".cded....c.", -- 3 + ".bded....b.", -- 4 + ".c.d.....c.", -- 5 + ".b.......b.", -- 6 + ".c.......c.", -- 7 + ".b.......b.", -- 8 + "..bcbfbcb..", -- 9 + "...........", -- 10 + + -- Level 2 + "...........", -- 0 + "..bgbgbgb..", -- 1 + ".b.......b.", -- 2 + ".g.......g.", -- 3 + ".bh.....ib.", -- 4 + ".g.......g.", -- 5 + ".b.......b.", -- 6 + ".g.......g.", -- 7 + ".b.......b.", -- 8 + "..bgbjbgb..", -- 9 + "...........", -- 10 + + -- Level 3 + "...kkkkk...", -- 0 + "..bcbcbcb..", -- 1 + ".b.......b.", -- 2 + "kc.......ck", -- 3 + "kb.......bk", -- 4 + "kc.......ck", -- 5 + "kb.......bk", -- 6 + "kc.......ck", -- 7 + ".b.......b.", -- 8 + "..bcblbcb..", -- 9 + "...kkkkk...", -- 10 + + -- Level 4 + ".kn.....nk.", -- 0 + "konnnnnnnok", -- 1 + "nnnnnnnnnnn", -- 2 + ".nnpppppnn.", -- 3 + ".nnpkkkpnn.", -- 4 + ".nnpkkkpnn.", -- 5 + ".nnpkkkpnn.", -- 6 + ".nnpppppnn.", -- 7 + "nnnnnnnnnnn", -- 8 + "kknnnnnnnok", -- 9 + ".kn.....nk.", -- 10 + + -- Level 5 + "n.........n", -- 0 + "...........", -- 1 + "...........", -- 2 + "...........", -- 3 + "....nnn....", -- 4 + "....non....", -- 5 + "....nnn....", -- 6 + "...........", -- 7 + "...........", -- 8 + "...........", -- 9 + "n.........n", -- 10 + + }, + }, -- HouseWide + + + + { + OriginData = + { + ExportName = "HouseWithGarden", + Name = "Plains 67", + GalleryName = "Plains", + GalleryIndex = "67", + ID = "130", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 16, + y = 9, + z = 16, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 16, + MaxY = 8, + MaxZ = 16, + }, + Connectors = + { + { + Type = -1, + RelX = 9, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 5: 2", -- planks + "c: 2: 0", -- grass + "d:113: 0", -- netherbrickfence + "e: 17: 1", -- tree + "f: 35: 0", -- wool + "g:126: 2", -- woodenslab + "h: 31: 2", -- tallgrass + "i:125: 2", -- woodendoubleslab + "j: 38: 3", -- rose + "k: 38: 2", -- rose + "l: 38: 1", -- rose + "m: 19: 0", -- sponge + "n: 17: 2", -- tree + "o: 50: 4", -- torch + "p: 85: 0", -- fence + "q:140: 0", -- flowerpotblock + "r: 50: 3", -- torch + "s: 44: 8", -- step + "t: 50: 1", -- torch + "u: 50: 2", -- torch + "v: 43: 0", -- doublestep + "w: 44: 0", -- step + "x: 18:10", -- leaves + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmaammmmm", -- 0 + "aabbbbbbbbbbaaam", -- 1 + "aabbbbbbbbbbaaam", -- 2 + "aabbbbbbbbbbaaam", -- 3 + "aabbbbbbbbbbaaam", -- 4 + "aabbbbbbbbbbaaam", -- 5 + "aabbbbbbbbbbaaam", -- 6 + "aabbbbbbbbbbaaam", -- 7 + "aabbbbbbbbbbaaam", -- 8 + "aabbbbbbbbbbaaam", -- 9 + "aaaaaaaaaaaaaaam", -- 10 + "aaaaaaaaaaaaaaam", -- 11 + "aaaaaaaaaaaaaaam", -- 12 + "aaaaaaaaaaaaaaam", -- 13 + "aaaaaaaaaaaaaaam", -- 14 + "mmmmmmmmmmmmmmmm", -- 15 + + -- Level 1 + "mmmmmmmmmccmmmmm", -- 0 + "ccbbbbbbbbbbcccm", -- 1 + "ccbbbbbbbbbbcccm", -- 2 + "ccbbbbbbbbbbcccm", -- 3 + "ccbbbbbbbbbbcccm", -- 4 + "ccbbbbbbbbbbcccm", -- 5 + "ccbbbbbbbbbbcccm", -- 6 + "ccbbbbbbbbbbcccm", -- 7 + "ccbbbbbbbbbbcccm", -- 8 + "ccbbbbbbbbbbcccm", -- 9 + "cccccccccccccccm", -- 10 + "cccccccccccccccm", -- 11 + "cccccccccccccccm", -- 12 + "cccccccccccccacm", -- 13 + "cccccccccccccccm", -- 14 + "mmmmmmmmmmmmmmmm", -- 15 + + -- Level 2 + "................", -- 0 + "ddeffeffe..eddd.", -- 1 + "d.fbbgggg..f..d.", -- 2 + "d.fbgggggggf.hd.", -- 3 + "d.fbgggggggf..d.", -- 4 + "d.eggggggggehhd.", -- 5 + "d.fgiiggiigf.hd.", -- 6 + "d.fgiiggiigf..d.", -- 7 + "d.fggggggggf..d.", -- 8 + "d.efffeefffe.hd.", -- 9 + "d.............d.", -- 10 + "djhhk.jhh..hh.d.", -- 11 + "d.jlk.hj.h....d.", -- 12 + "d..jh.hh..h..nd.", -- 13 + "ddddddddddddddd.", -- 14 + "................", -- 15 + + -- Level 3 + "........o..o....", -- 0 + "..eppeffe..e....", -- 1 + "..pqq......p....", -- 2 + "..pq.......p....", -- 3 + "..pq.......p....", -- 4 + "..e........e....", -- 5 + "..p........p....", -- 6 + "..p........p....", -- 7 + "..p........p....", -- 8 + "..epppeepppe....", -- 9 + "......rr........", -- 10 + "................", -- 11 + "................", -- 12 + ".............n..", -- 13 + "................", -- 14 + "................", -- 15 + + -- Level 4 + "..ssssssssss....", -- 0 + ".seffeffeffes...", -- 1 + ".sf..r.....fs...", -- 2 + ".sf........fs...", -- 3 + ".sf........fs...", -- 4 + ".set......ues...", -- 5 + ".sf........fs...", -- 6 + ".sf........fs...", -- 7 + ".sf........fs...", -- 8 + ".sefffeefffes...", -- 9 + "..ssssssssss....", -- 10 + "................", -- 11 + "................", -- 12 + ".............n..", -- 13 + "................", -- 14 + "................", -- 15 + + -- Level 5 + ".vw........wv...", -- 0 + ".wwwwwwwwwwww...", -- 1 + "..wvvvvvvvvw....", -- 2 + "..wvvvvvvvvw....", -- 3 + "..wvvvvvvvvw....", -- 4 + "..wvvvvvvvvw....", -- 5 + "..wvvvvvvvvw....", -- 6 + "..wvvvvvvvvw....", -- 7 + "..wvvvvvvvvw....", -- 8 + ".wwwwwwwwwwww...", -- 9 + ".vw........wv...", -- 10 + "............xxx.", -- 11 + "...........xxxxx", -- 12 + "...........xxnxx", -- 13 + "...........xxxxx", -- 14 + "............xxx.", -- 15 + + -- Level 6 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "....wwwwww......", -- 3 + "....wvvvvw......", -- 4 + "....wvvvvw......", -- 5 + "....wvvvvw......", -- 6 + "....wwwwww......", -- 7 + "................", -- 8 + "................", -- 9 + "................", -- 10 + "............xxx.", -- 11 + "...........xxxxx", -- 12 + "...........xxnxx", -- 13 + "...........xxxxx", -- 14 + "............xxx.", -- 15 + + -- Level 7 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "................", -- 3 + "................", -- 4 + "......ww........", -- 5 + "................", -- 6 + "................", -- 7 + "................", -- 8 + "................", -- 9 + "................", -- 10 + "................", -- 11 + "............xxx.", -- 12 + "............xnx.", -- 13 + "............xx..", -- 14 + "................", -- 15 + + -- Level 8 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "................", -- 3 + "................", -- 4 + "................", -- 5 + "................", -- 6 + "................", -- 7 + "................", -- 8 + "................", -- 9 + "................", -- 10 + "................", -- 11 + ".............x..", -- 12 + "............xxx.", -- 13 + ".............x..", -- 14 + "................", -- 15 + + }, + }, -- HouseWithGarden + + + + { + OriginData = + { + ExportName = "HouseSmall", + Name = "Plains 68", + GalleryName = "Plains", + GalleryIndex = "68", + ID = "131", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b: 17: 1", -- tree + "c: 35: 0", -- wool + "d: 50: 4", -- torch + "e: 85: 0", -- fence + "f: 44: 8", -- step + "g: 43: 0", -- doublestep + "h: 44: 0", -- step + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmmm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + ".......", -- 0 + ".bcc.b.", -- 1 + ".c...c.", -- 2 + ".c...c.", -- 3 + ".c...c.", -- 4 + ".bcccb.", -- 5 + ".......", -- 6 + + -- Level 2 + ".....d.", -- 0 + ".bee.b.", -- 1 + ".c...c.", -- 2 + ".e...e.", -- 3 + ".c...c.", -- 4 + ".beeeb.", -- 5 + ".......", -- 6 + + -- Level 3 + ".fffff.", -- 0 + "fbcccbf", -- 1 + "fc...cf", -- 2 + "fc...cf", -- 3 + "fc...cf", -- 4 + "fbcccbf", -- 5 + ".fffff.", -- 6 + + -- Level 4 + "gh...hg", -- 0 + "hhhhhhh", -- 1 + ".hgggh.", -- 2 + ".hgggh.", -- 3 + ".hgggh.", -- 4 + "hhhhhhh", -- 5 + "gh...hg", -- 6 + + -- Level 5 + ".......", -- 0 + ".......", -- 1 + ".......", -- 2 + "...h...", -- 3 + ".......", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- HouseSmall + + + + { + OriginData = + { + ExportName = "HighTemple", + Name = "Plains 70", + GalleryName = "Plains", + GalleryIndex = "70", + ID = "133", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 19, + z = 11, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 18, + MaxZ = 10, + }, + Connectors = + { + { + Type = 2, + RelX = 0, + RelY = 1, + RelZ = 5, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 2, + RelX = 10, + RelY = 1, + RelZ = 5, + Direction = 5, -- X+ + }, + { + Type = 2, + RelX = 5, + RelY = 1, + RelZ = 10, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b:135: 0", -- whitewoodstairs + "c:135: 2", -- whitewoodstairs + "d:135: 1", -- whitewoodstairs + "e: 17: 9", -- tree + "f:135: 3", -- whitewoodstairs + "g: 85: 0", -- fence + "h: 17: 1", -- tree + "i:171: 0", -- carpet + "j: 50: 5", -- torch + "k: 35: 0", -- wool + "l: 17: 5", -- tree + "m: 19: 0", -- sponge + "n:124: 0", -- redstonelampon + "o: 69: 9", -- lever + "p: 44: 8", -- step + "q: 43: 0", -- doublestep + "r: 44: 0", -- step + "s: 50: 4", -- torch + "t: 50: 1", -- torch + "u: 50: 3", -- torch + }, + BlockData = + { + -- Level 0 + "mmmaaaaammm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "aaaaaaaaaaa", -- 3 + "aaaaaaaaaaa", -- 4 + "aaaaaaaaaaa", -- 5 + "aaaaaaaaaaa", -- 6 + "aaaaaaaaaaa", -- 7 + "maaaaaaaaam", -- 8 + "maaaaaaaaam", -- 9 + "mmmaaaaammm", -- 10 + + -- Level 1 + "...bcccd...", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + "caaaaaaaaac", -- 3 + "baaaaaaaaad", -- 4 + "baaeaaaaaad", -- 5 + "baaaaaaaaad", -- 6 + "faaaaaaaaaf", -- 7 + ".aaaaaaaaa.", -- 8 + ".aaaaaaaaa.", -- 9 + "...bfffd...", -- 10 + + -- Level 2 + "...........", -- 0 + ".ggg...ggg.", -- 1 + ".g.......g.", -- 2 + ".g.hhhhh.g.", -- 3 + "...hiiih...", -- 4 + "....iiih...", -- 5 + "...hiiih...", -- 6 + ".g.hhhhh.g.", -- 7 + ".g.......g.", -- 8 + ".ggg...ggg.", -- 9 + "...........", -- 10 + + -- Level 3 + "...........", -- 0 + ".j.g...g.j.", -- 1 + "...........", -- 2 + ".g.kkhkk.g.", -- 3 + "...h...k...", -- 4 + ".......h...", -- 5 + "...h...k...", -- 6 + ".g.kkhkk.g.", -- 7 + "...........", -- 8 + ".j.g...g.j.", -- 9 + "...........", -- 10 + + -- Level 4 + "...........", -- 0 + "...g...g...", -- 1 + "...........", -- 2 + ".g.kkhkk.g.", -- 3 + "...h...k...", -- 4 + "...k...h...", -- 5 + "...h...k...", -- 6 + ".g.kkhkk.g.", -- 7 + "...........", -- 8 + "...g...g...", -- 9 + "...........", -- 10 + + -- Level 5 + "...........", -- 0 + "...g...g...", -- 1 + "...ggggg...", -- 2 + ".gghlhlhgg.", -- 3 + "..ge...eg..", -- 4 + "..ge.nohg..", -- 5 + "..ge...eg..", -- 6 + ".gghlhlhgg.", -- 7 + "...ggggg...", -- 8 + "...g...g...", -- 9 + "...........", -- 10 + + -- Level 6 + "...........", -- 0 + "..pqrrrqp..", -- 1 + ".pqqqqqqqp.", -- 2 + ".qqhkkkhqq.", -- 3 + ".rqkhhhkqr.", -- 4 + ".rqkhhhkqr.", -- 5 + ".rqkhhhkqr.", -- 6 + ".qqhkkkhqq.", -- 7 + ".pqqqqqqqp.", -- 8 + "..pqrrrqp..", -- 9 + "...........", -- 10 + + -- Level 7 + "...........", -- 0 + ".qr.....rq.", -- 1 + ".........r.", -- 2 + "...hhhhh...", -- 3 + "...hiiih...", -- 4 + "....iiih...", -- 5 + "...hiiih...", -- 6 + "...hhhhh...", -- 7 + ".r.......r.", -- 8 + ".qr.....rq.", -- 9 + "...........", -- 10 + + -- Level 8 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...kkhkk...", -- 3 + "...h...k...", -- 4 + ".......h...", -- 5 + "...h...k...", -- 6 + "...kkhkk...", -- 7 + "...........", -- 8 + "...........", -- 9 + "...........", -- 10 + + -- Level 9 + "...........", -- 0 + "...........", -- 1 + ".....s.....", -- 2 + "...kkhkk...", -- 3 + "...h...k...", -- 4 + "...k...ht..", -- 5 + "...h...k...", -- 6 + "...kkhkk...", -- 7 + ".....u.....", -- 8 + "...........", -- 9 + "...........", -- 10 + + -- Level 10 + "...........", -- 0 + "...........", -- 1 + "...ggggg...", -- 2 + "..ghlhlhg..", -- 3 + "..ge...eg..", -- 4 + "..ge.nohg..", -- 5 + "..ge...eg..", -- 6 + "..ghlhlhg..", -- 7 + "...ggggg...", -- 8 + "...........", -- 9 + "...........", -- 10 + + -- Level 11 + "...........", -- 0 + "..prrrrrp..", -- 1 + ".pqqqqqqqp.", -- 2 + ".qqhkkkhqq.", -- 3 + ".rqkhhhkqr.", -- 4 + ".rqkhhhkqr.", -- 5 + ".rqkhhhkqr.", -- 6 + ".qqhkkkhqr.", -- 7 + ".pqqqqqqqp.", -- 8 + "..pqrrrqp..", -- 9 + "...........", -- 10 + + -- Level 12 + "...........", -- 0 + ".qr.....rq.", -- 1 + ".r.......r.", -- 2 + "...hhhhh...", -- 3 + "...hiiih...", -- 4 + "....iiih...", -- 5 + "...hiiih...", -- 6 + "...hhhhh...", -- 7 + ".r.......r.", -- 8 + ".qr.....rq.", -- 9 + "...........", -- 10 + + -- Level 13 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...kkhkk...", -- 3 + "...h...k...", -- 4 + ".......h...", -- 5 + "...h...k...", -- 6 + "...kkhkk...", -- 7 + "...........", -- 8 + "...........", -- 9 + "...........", -- 10 + + -- Level 14 + "...........", -- 0 + "...........", -- 1 + ".....s.....", -- 2 + "...kkhkk...", -- 3 + "...h...k...", -- 4 + "...k...ht..", -- 5 + "...h...k...", -- 6 + "...kkhkk...", -- 7 + ".....u.....", -- 8 + "...........", -- 9 + "...........", -- 10 + + -- Level 15 + "...........", -- 0 + "...........", -- 1 + "...ggggg...", -- 2 + "..ghlhlhg..", -- 3 + "..ge...eg..", -- 4 + "..ge.nohg..", -- 5 + "..ge...eg..", -- 6 + "..ghlhlhg..", -- 7 + "...ggggg...", -- 8 + "...........", -- 9 + "...........", -- 10 + + -- Level 16 + "...........", -- 0 + "..pqrrrqp..", -- 1 + ".pqqqqqqqp.", -- 2 + ".qqrrrrrqq.", -- 3 + ".rqrrrrrqr.", -- 4 + ".rqrrrrrqr.", -- 5 + ".rqrrrrrqr.", -- 6 + ".qqrrrrrqq.", -- 7 + ".pqqqqqqqp.", -- 8 + "..pqrrrqp..", -- 9 + "...........", -- 10 + + -- Level 17 + "...........", -- 0 + ".qr.....rq.", -- 1 + ".rr.....rr.", -- 2 + "...rrrrr...", -- 3 + "...rqqqr...", -- 4 + "...rqqqr...", -- 5 + "...rqqqr...", -- 6 + "...rrrrr...", -- 7 + ".rr.....rr.", -- 8 + ".qr.....rq.", -- 9 + "...........", -- 10 + + -- Level 18 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + ".....r.....", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + "...........", -- 9 + "...........", -- 10 + + }, + }, -- HighTemple + + + + { + OriginData = + { + ExportName = "HouseSmallDouble", + Name = "Plains 72", + GalleryName = "Plains", + GalleryIndex = "72", + ID = "135", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b: 17: 1", -- tree + "c: 35: 0", -- wool + "d:171:12", -- carpet + "e:135: 1", -- whitewoodstairs + "f:126: 2", -- woodenslab + "g:135: 2", -- whitewoodstairs + "h: 50: 4", -- torch + "i: 85: 0", -- fence + "j: 44: 8", -- step + "k: 43: 0", -- doublestep + "l: 44: 0", -- step + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "mmmmmmmmmmm", -- 6 + + -- Level 1 + "...........", -- 0 + ".bcc.bcccb.", -- 1 + ".cddd.dddc.", -- 2 + ".ceddcdfdc.", -- 3 + ".cggdcdddc.", -- 4 + ".bcccbcccb.", -- 5 + "...........", -- 6 + + -- Level 2 + ".h...h...h.", -- 0 + ".bii.biiib.", -- 1 + ".c.......c.", -- 2 + ".i...i...i.", -- 3 + ".c...i...c.", -- 4 + ".biiibiiib.", -- 5 + "...........", -- 6 + + -- Level 3 + ".jjjjjjjjj.", -- 0 + "jbiiibiiibj", -- 1 + "jc.......cj", -- 2 + "jc...c...cj", -- 3 + "jc...c...cj", -- 4 + "jbcccbcccbj", -- 5 + ".jjjjjjjjj.", -- 6 + + -- Level 4 + "kl...l...lk", -- 0 + "lllllllllll", -- 1 + ".lkkklkkkl.", -- 2 + ".lkjklkkkl.", -- 3 + ".lkkklkkkl.", -- 4 + "lllllllllll", -- 5 + "kl...l...lk", -- 6 + + -- Level 5 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...l...l...", -- 3 + "...........", -- 4 + "...........", -- 5 + "...........", -- 6 + + }, + }, -- HouseSmallDouble + + + + { + OriginData = + { + ExportName = "HouseWithSpa", + Name = "Plains 73", + GalleryName = "Plains", + GalleryIndex = "73", + ID = "139", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 16, + y = 8, + z = 14, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 15, + MaxY = 7, + MaxZ = 13, + }, + Connectors = + { + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b: 3: 0", -- dirt + "c: 2: 0", -- grass + "d: 8: 0", -- water + "e:135: 3", -- whitewoodstairs + "f:135: 1", -- whitewoodstairs + "g:113: 0", -- netherbrickfence + "h: 17: 1", -- tree + "i: 35: 0", -- wool + "j:171:12", -- carpet + "k: 64: 6", -- wooddoorblock + "l:126: 2", -- woodenslab + "m: 19: 0", -- sponge + "n:135: 2", -- whitewoodstairs + "o: 64: 7", -- wooddoorblock + "p: 50: 4", -- torch + "q: 85: 0", -- fence + "r: 64:12", -- wooddoorblock + "s: 50: 3", -- torch + "t: 44: 8", -- step + "u: 43: 0", -- doublestep + "v: 44: 0", -- step + }, + BlockData = + { + -- Level 0 + "................", -- 0 + ".aaaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaaaaa.", -- 6 + ".aaaaaabbbbbbbbb", -- 7 + ".aaaaaabbbbbbbbb", -- 8 + ".aaaaaabbbbbbbbb", -- 9 + ".aaaaaabbbbbbbbb", -- 10 + ".aaaaaabbbbbbbbb", -- 11 + ".aaaaaabbbbbbbbb", -- 12 + ".......bbbbbbbbb", -- 13 + + -- Level 1 + "mmmmmmmmmmmmmmmm", -- 0 + "maaaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaccccc", -- 7 + "maaaaaaacccccccc", -- 8 + "maaaaaaacccccccc", -- 9 + "maaaaaaacccccccc", -- 10 + "maaaaaaccccccccc", -- 11 + "maaaaaaccccccccc", -- 12 + "mmmmmmmccccccccc", -- 13 + + -- Level 2 + "................", -- 0 + ".aaaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaaaa.", -- 5 + ".aaddaaaaaaaaaa.", -- 6 + ".aaddaaeeef.....", -- 7 + ".aaddaaf........", -- 8 + ".aaddaaf........", -- 9 + ".aaddaae........", -- 10 + ".aaddaa.........", -- 11 + ".aaaaaa.........", -- 12 + "................", -- 13 + + -- Level 3 + "................", -- 0 + ".ggggghiiihiiih.", -- 1 + ".geee.ijjjjjjji.", -- 2 + ".gf...kjjjijlji.", -- 3 + ".gf...innjijjji.", -- 4 + ".g....hiiohiiih.", -- 5 + ".g....g.........", -- 6 + ".g..............", -- 7 + ".g..............", -- 8 + ".g..............", -- 9 + ".g....g.........", -- 10 + ".g....g.........", -- 11 + ".gggggg.........", -- 12 + "................", -- 13 + + -- Level 4 + "......p...p...p.", -- 0 + ".g....hqqqhqqqh.", -- 1 + "......i.......i.", -- 2 + "......r...q...q.", -- 3 + "......i...q...i.", -- 4 + "......hqqrhqqqh.", -- 5 + "......g...s.....", -- 6 + "................", -- 7 + "................", -- 8 + "................", -- 9 + "................", -- 10 + "................", -- 11 + ".g....g.........", -- 12 + "................", -- 13 + + -- Level 5 + ".tttttttttttttt.", -- 0 + "tggggghqqqhqqqht", -- 1 + "tg....i.......it", -- 2 + "tg....i...i...it", -- 3 + "tg....i...i...it", -- 4 + "tg....hiiihiiiht", -- 5 + "tg....gtttttttt.", -- 6 + "tg....gt........", -- 7 + "tg....gt........", -- 8 + "tg....gt........", -- 9 + "tg....gt........", -- 10 + "tg....gt........", -- 11 + "tggggggt........", -- 12 + ".tttttt.........", -- 13 + + -- Level 6 + "uv............vu", -- 0 + "vvvvvvvvvvvvvvvv", -- 1 + ".vuuuuuuuuuuuuv.", -- 2 + ".vuuuuuutuuuuuv.", -- 3 + ".vuuuuuuuuuuuuv.", -- 4 + ".vuuuuvvvvvvvvvv", -- 5 + ".vuuuuv.......vu", -- 6 + ".vuuuuv.........", -- 7 + ".vuuuuv.........", -- 8 + ".vuuuuv.........", -- 9 + ".vuuuuv.........", -- 10 + ".vuuuuv.........", -- 11 + "vvvvvvvv........", -- 12 + "uv....vu........", -- 13 + + -- Level 7 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "...vvvvvvvvvv...", -- 3 + "...vv...........", -- 4 + "...vv...........", -- 5 + "...vv...........", -- 6 + "...vv...........", -- 7 + "...vv...........", -- 8 + "...vv...........", -- 9 + "...vv...........", -- 10 + "................", -- 11 + "................", -- 12 + "................", -- 13 + + }, + }, -- HouseWithSpa + + + + { + OriginData = + { + ExportName = "HouseWithSakura1", + Name = "Plains 75", + GalleryName = "Plains", + GalleryIndex = "75", + ID = "141", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 13, + y = 7, + z = 15, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 13, + MaxY = 6, + MaxZ = 15, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 2: 0", -- grass + "c: 17: 5", -- tree + "d: 5: 2", -- planks + "e: 17: 9", -- tree + "f:113: 0", -- netherbrickfence + "g: 17: 1", -- tree + "h: 35: 0", -- wool + "i: 31: 2", -- tallgrass + "j: 54: 2", -- chest + "k: 38: 6", -- rose + "l: 38: 2", -- rose + "m: 19: 0", -- sponge + "n: 50: 4", -- torch + "o: 85: 0", -- fence + "p: 44: 8", -- step + "q: 35: 6", -- wool + "r: 43: 0", -- doublestep + "s: 44: 0", -- step + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaaa", -- 5 + "aaaaaaaaaaaaa", -- 6 + "aaaaaaaaaaaaa", -- 7 + "aaaaaaaaaaaaa", -- 8 + "aaaaaaaaaaaaa", -- 9 + "aaaaaaaaaaaaa", -- 10 + "aaaaaaaaaaaaa", -- 11 + "aaaaaaaaaaaaa", -- 12 + "aaaaaaaaaaaaa", -- 13 + "aaaaaaaaaaaaa", -- 14 + + -- Level 1 + "bbbbbbbbbbbbb", -- 0 + "bbbbbbbbbbbbb", -- 1 + "bbbaccdabbbbb", -- 2 + "bbbedddebbbbb", -- 3 + "bbbedddebbbbb", -- 4 + "bbbedddebbbbb", -- 5 + "bbbacccabbbbb", -- 6 + "bbbbbbbbbbbbb", -- 7 + "bbbbbbbbbbbbb", -- 8 + "bbbbbbbbbbbbb", -- 9 + "bbbbbbbbbbabb", -- 10 + "bbbbbbbbbbbbb", -- 11 + "bbbbbbbbbbbbb", -- 12 + "bbbbbbbbbbbbb", -- 13 + "bbbbbbbbbbbbb", -- 14 + + -- Level 2 + "ffff...ffffff", -- 0 + "f...........f", -- 1 + "f..ghh.g..i.f", -- 2 + "f..h...h..i.f", -- 3 + "f..h...h....f", -- 4 + "fi.h..jh..i.f", -- 5 + "f..ghhhg....f", -- 6 + "f.........i.f", -- 7 + "fii.........f", -- 8 + "f.k..k.i....f", -- 9 + "fl.i..i...g.f", -- 10 + "f.i..i.k....f", -- 11 + "f.l.k.......f", -- 12 + "f.....l.....f", -- 13 + "fffffffffffff", -- 14 + + -- Level 3 + ".............", -- 0 + ".......n.....", -- 1 + "...goo.g.....", -- 2 + "...h...h.....", -- 3 + "...o...o.....", -- 4 + "...h...h.....", -- 5 + "...gooog.....", -- 6 + ".............", -- 7 + ".............", -- 8 + ".............", -- 9 + "..........g..", -- 10 + ".............", -- 11 + ".............", -- 12 + ".............", -- 13 + ".............", -- 14 + + -- Level 4 + ".............", -- 0 + "...ppppp.....", -- 1 + "..pghhhgp....", -- 2 + "..ph...hp....", -- 3 + "..ph...hp....", -- 4 + "..ph...hp....", -- 5 + "..pghhhgp....", -- 6 + "...ppppp.....", -- 7 + ".............", -- 8 + "..........q..", -- 9 + ".........qgq.", -- 10 + "..........q..", -- 11 + ".............", -- 12 + ".............", -- 13 + ".............", -- 14 + + -- Level 5 + ".............", -- 0 + "..rs...sr....", -- 1 + "..sssssss....", -- 2 + "...srrrs.....", -- 3 + "...srrrs.....", -- 4 + "...srrrs.....", -- 5 + "..sssssss....", -- 6 + "..rs...sr....", -- 7 + ".............", -- 8 + ".........qqq.", -- 9 + ".........qqq.", -- 10 + ".........qqq.", -- 11 + ".............", -- 12 + ".............", -- 13 + ".............", -- 14 + + -- Level 6 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + ".....s.......", -- 4 + ".............", -- 5 + ".............", -- 6 + ".............", -- 7 + ".............", -- 8 + ".............", -- 9 + "..........q..", -- 10 + ".............", -- 11 + ".............", -- 12 + ".............", -- 13 + ".............", -- 14 + + }, + }, -- HouseWithSakura1 + + + + { + OriginData = + { + ExportName = "SakuraDouble", + Name = "Plains 76", + GalleryName = "Plains", + GalleryIndex = "76", + ID = "142", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 12, + y = 8, + z = 6, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 12, + MaxY = 7, + MaxZ = 6, + }, + Connectors = + { + { + Type = -1, + RelX = -1, + RelY = 2, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 5, + RelY = 2, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = -3, + RelX = 6, + RelY = 2, + RelZ = -1, + Direction = 2, -- Z- + }, + { + Type = -3, + RelX = 12, + RelY = 2, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = 3, + RelX = 12, + RelY = 2, + RelZ = 2, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 2: 0", -- grass + "c: 17: 1", -- tree + "d: 35: 6", -- wool + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaa", -- 5 + + -- Level 1 + "bbbbbbbbbbbb", -- 0 + "bbbbbbbbbbbb", -- 1 + "bbabbbbbbbbb", -- 2 + "bbbbbbbbbabb", -- 3 + "bbbbbbbbbbbb", -- 4 + "bbbbbbbbbbbb", -- 5 + + -- Level 2 + "............", -- 0 + "............", -- 1 + "..c.........", -- 2 + ".........c..", -- 3 + "............", -- 4 + "............", -- 5 + + -- Level 3 + "............", -- 0 + "............", -- 1 + "..c.........", -- 2 + ".........c..", -- 3 + "............", -- 4 + "............", -- 5 + + -- Level 4 + "..d.........", -- 0 + "ddddd.......", -- 1 + "ddcdd...ddd.", -- 2 + "ddddd...dcd.", -- 3 + "..d.....ddd.", -- 4 + "............", -- 5 + + -- Level 5 + ".ddd........", -- 0 + ".ddd....ddd.", -- 1 + "ddddd..ddddd", -- 2 + ".ddd...ddcdd", -- 3 + ".ddd...ddddd", -- 4 + "........ddd.", -- 5 + + -- Level 6 + "............", -- 0 + "..d......d..", -- 1 + ".ddd....ddd.", -- 2 + "..d....ddddd", -- 3 + "........ddd.", -- 4 + ".........d..", -- 5 + + -- Level 7 + "............", -- 0 + "............", -- 1 + "............", -- 2 + ".........d..", -- 3 + "............", -- 4 + "............", -- 5 + + }, + }, -- SakuraDouble + + + + { + OriginData = + { + ExportName = "Forge", + Name = "Plains 79", + GalleryName = "Plains", + GalleryIndex = "79", + ID = "145", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 16, + y = 11, + z = 14, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = -1, + MaxX = 16, + MaxY = 10, + MaxZ = 14, + }, + Connectors = + { + { + Type = -1, + RelX = 0, + RelY = 1, + RelZ = 3, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 17: 1", -- tree + "c: 67: 0", -- stairs + "d: 5: 2", -- planks + "e: 67: 2", -- stairs + "f:113: 0", -- netherbrickfence + "g:118: 2", -- cauldronblock + "h: 67: 6", -- stairs + "i: 67: 4", -- stairs + "j: 87: 0", -- netherstone + "k: 67: 7", -- stairs + "l: 54: 5", -- chest + "m: 19: 0", -- sponge + "n: 61: 2", -- furnace + "o:101: 0", -- ironbars + "p: 51: 0", -- fire + "q: 50: 4", -- torch + "r: 50: 2", -- torch + "s: 35: 0", -- wool + "t: 67: 3", -- stairs + "u: 50: 3", -- torch + "v: 44: 8", -- step + "w: 43: 0", -- doublestep + "x: 44: 0", -- step + "y: 17: 5", -- tree + "z: 17: 9", -- tree + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmmm", -- 1 + "mmaaaaaaaaaaaamm", -- 2 + "mmaaaaaaaaaaaamm", -- 3 + "mmaaaaaaaaaaaamm", -- 4 + "mmaaaaaaaaaaaamm", -- 5 + "mmaaaaaaaaaaaamm", -- 6 + "mmaaaaaaaaaaaamm", -- 7 + "mmaaaaaaaaaaaamm", -- 8 + "mmaaaaaaaaaaaamm", -- 9 + "mmaaaaaaaaaaaamm", -- 10 + "mmaaaaaaaaaaaamm", -- 11 + "mmmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmmm", -- 13 + + -- Level 1 + "................", -- 0 + "................", -- 1 + ".....bbbbbbbbb..", -- 2 + ".....cdddddddb..", -- 3 + ".....cddaaaadb..", -- 4 + "..beeedaaaaadb..", -- 5 + "..bddddaaaaadb..", -- 6 + "..bddddaaaaadb..", -- 7 + "..bddddaaaaadb..", -- 8 + "..bddddaaaaadb..", -- 9 + "..bddddddddddb..", -- 10 + "..bbbbbbbbbbbb..", -- 11 + "................", -- 12 + "................", -- 13 + + -- Level 2 + "................", -- 0 + "................", -- 1 + ".....bfffbfffb..", -- 2 + ".............a..", -- 3 + ".............a..", -- 4 + "..b.....ghh..a..", -- 5 + "..f.....haa..b..", -- 6 + "..f.....ija..b..", -- 7 + "..f.....kaa..a..", -- 8 + "..f..........a..", -- 9 + "..fl.........a..", -- 10 + "..bffffbbffffb..", -- 11 + "................", -- 12 + "................", -- 13 + + -- Level 3 + "................", -- 0 + "................", -- 1 + ".....bfffbfffb..", -- 2 + ".............a..", -- 3 + ".............a..", -- 4 + "..b......nn..a..", -- 5 + "..f.....oaa..b..", -- 6 + "..f.....opa..b..", -- 7 + "..f.....oaa..a..", -- 8 + "..f..........a..", -- 9 + "..f..........a..", -- 10 + "..bffffbbffffb..", -- 11 + "................", -- 12 + "................", -- 13 + + -- Level 4 + "................", -- 0 + ".........q...q..", -- 1 + "....rbsssbsssb..", -- 2 + ".............a..", -- 3 + "..q..........a..", -- 4 + "..b......ce..a..", -- 5 + "..s......ea..b..", -- 6 + "..s......aa..b..", -- 7 + "..s......ta..a..", -- 8 + "..s..........a..", -- 9 + "..s..........a..", -- 10 + ".rbssssbbssssb..", -- 11 + "..u....uu....u..", -- 12 + "................", -- 13 + + -- Level 5 + ".vwxxxxxxxxxxwv.", -- 0 + "vvvvvvvvvvvvvvvv", -- 1 + "wvbyybyyybbyybvw", -- 2 + "xvz..........zvx", -- 3 + "xvz..........zvx", -- 4 + "xvb..........zvx", -- 5 + "xvz.......a..bvx", -- 6 + "xvz......ca..bvx", -- 7 + "xvz.......a..zvx", -- 8 + "xvz..........zvx", -- 9 + "xvz..........zvx", -- 10 + "wvbyyyyyyyyyybvw", -- 11 + "vvvvvvvvvvvvvvvv", -- 12 + ".vwxxxxxxxxxxwv.", -- 13 + + -- Level 6 + "wx............xw", -- 0 + "x..............x", -- 1 + "..xxxxxxxxxxxx..", -- 2 + "..xwwwwwwwwwwx..", -- 3 + "..xwvvvvvvvvvx..", -- 4 + "..xwv.......vx..", -- 5 + "..xwv.....a.vx..", -- 6 + "..xwv.....a.vx..", -- 7 + "..xwv.....a.vx..", -- 8 + "..xwvvvvvvvvvx..", -- 9 + "..xwwwwwwwwwwx..", -- 10 + "..xxxxxxxxxxxx..", -- 11 + "x..............x", -- 12 + "wx............xw", -- 13 + + -- Level 7 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "................", -- 3 + "....xxxxxxxx....", -- 4 + "....xxxxxxxx....", -- 5 + "....xwwwwwax....", -- 6 + "....xwvvvvax....", -- 7 + "....xwwwwwax....", -- 8 + "....xxxxxxxx....", -- 9 + "................", -- 10 + "................", -- 11 + "................", -- 12 + "................", -- 13 + + -- Level 8 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "................", -- 3 + "................", -- 4 + "................", -- 5 + "..........a.....", -- 6 + ".......xx.a.....", -- 7 + "..........a.....", -- 8 + "................", -- 9 + "................", -- 10 + "................", -- 11 + "................", -- 12 + "................", -- 13 + + -- Level 9 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "................", -- 3 + "................", -- 4 + "................", -- 5 + "..........a.....", -- 6 + "..........a.....", -- 7 + "..........a.....", -- 8 + "................", -- 9 + "................", -- 10 + "................", -- 11 + "................", -- 12 + "................", -- 13 + + -- Level 10 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "................", -- 3 + "................", -- 4 + "................", -- 5 + "..........a.....", -- 6 + "..........a.....", -- 7 + "..........a.....", -- 8 + "................", -- 9 + "................", -- 10 + "................", -- 11 + "................", -- 12 + "................", -- 13 + + }, + }, -- Forge + + + + { + OriginData = + { + ExportName = "HouseSmallWithDoor", + Name = "Plains 112", + GalleryName = "Plains", + GalleryIndex = "112", + ID = "264", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b: 17: 1", -- tree + "c: 35: 0", -- wool + "d: 64: 3", -- wooddoorblock + "e: 50: 4", -- torch + "f: 64: 9", -- wooddoorblock + "g: 85: 0", -- fence + "h: 44: 8", -- step + "i: 43: 0", -- doublestep + "j: 44: 0", -- step + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmmm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + ".......", -- 0 + ".bcdcb.", -- 1 + ".c...c.", -- 2 + ".c...c.", -- 3 + ".c...c.", -- 4 + ".bcccb.", -- 5 + ".......", -- 6 + + -- Level 2 + ".....e.", -- 0 + ".bcfcb.", -- 1 + ".g...g.", -- 2 + ".g...g.", -- 3 + ".g...g.", -- 4 + ".bgggb.", -- 5 + ".......", -- 6 + + -- Level 3 + ".hhhhh.", -- 0 + "hbcccbh", -- 1 + "hc...ch", -- 2 + "hc...ch", -- 3 + "hc...ch", -- 4 + "hbcccbh", -- 5 + ".hhhhh.", -- 6 + + -- Level 4 + "ij...ji", -- 0 + "jjjjjjj", -- 1 + ".jiiij.", -- 2 + ".jiiij.", -- 3 + ".jiiij.", -- 4 + "jjjjjjj", -- 5 + "ij...ji", -- 6 + + -- Level 5 + ".......", -- 0 + ".......", -- 1 + ".......", -- 2 + "...j...", -- 3 + ".......", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- HouseSmallWithDoor + + + + { + OriginData = + { + ExportName = "HouseSmallDblWithDoor", + Name = "Plains 113", + GalleryName = "Plains", + GalleryIndex = "113", + ID = "265", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = -1, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 2", -- planks + "b: 17: 9", -- tree + "c: 17: 1", -- tree + "d: 35: 0", -- wool + "e: 64: 3", -- wooddoorblock + "f:171:12", -- carpet + "g:135: 1", -- whitewoodstairs + "h:126: 2", -- woodenslab + "i:135: 2", -- whitewoodstairs + "j: 50: 4", -- torch + "k: 64: 9", -- wooddoorblock + "l: 85: 0", -- fence + "m: 19: 0", -- sponge + "n: 44: 8", -- step + "o: 43: 0", -- doublestep + "p: 44: 0", -- step + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaabaaaam", -- 2 + "maaaabaaaam", -- 3 + "maaaabaaaam", -- 4 + "maaaaaaaaam", -- 5 + "mmmmmmmmmmm", -- 6 + + -- Level 1 + "...........", -- 0 + ".cdedcdddc.", -- 1 + ".dfff.fffd.", -- 2 + ".dgffdfhfd.", -- 3 + ".diifdfffd.", -- 4 + ".cdddcdddc.", -- 5 + "...........", -- 6 + + -- Level 2 + ".j...j...j.", -- 0 + ".cdkdclllc.", -- 1 + ".d.......l.", -- 2 + ".l...l...l.", -- 3 + ".d...l...l.", -- 4 + ".clllclllc.", -- 5 + "...........", -- 6 + + -- Level 3 + ".nnnnnnnnn.", -- 0 + "ncdddcdddcn", -- 1 + "nd...d...dn", -- 2 + "nd...d...dn", -- 3 + "nd...d...dn", -- 4 + "ncdddcdddcn", -- 5 + ".nnnnnnnnn.", -- 6 + + -- Level 4 + "op.......po", -- 0 + "ppppppppppp", -- 1 + ".pooooooop.", -- 2 + ".ponndnnop.", -- 3 + ".pooooooop.", -- 4 + "ppppppppppp", -- 5 + "op.......po", -- 6 + + -- Level 5 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "...ppppp...", -- 3 + "...........", -- 4 + "...........", -- 5 + "...........", -- 6 + + }, + }, -- HouseSmallDblWithDoor + + + + { + OriginData = + { + ExportName = "Well", + Name = "Plains 143", + GalleryName = "Plains", + GalleryIndex = "143", + ID = "487", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 14, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 13, + MaxZ = 6, + }, + Connectors = + { + { + Type = 2, + RelX = 0, + RelY = 9, + RelZ = 3, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 3, + RelY = 9, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 2, + RelX = 6, + RelY = 9, + RelZ = 3, + Direction = 5, -- X+ + }, + { + Type = 2, + RelX = 3, + RelY = 9, + RelZ = 6, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 4: 0", -- cobblestone + "c: 8: 0", -- water + "d: 13: 0", -- gravel + "e: 67: 1", -- stairs + "f: 67: 2", -- stairs + "g: 67: 0", -- stairs + "h: 67: 3", -- stairs + "i: 85: 0", -- fence + "j: 44: 8", -- step + "k: 44: 0", -- step + "l: 43: 0", -- doublestep + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmmm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + "mmmmmmm", -- 0 + "mbbbbbm", -- 1 + "mbcc.bm", -- 2 + "mbcccbm", -- 3 + "mbcccbm", -- 4 + "mbbbbbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 2 + "mmmmmmm", -- 0 + "mbbbbbm", -- 1 + "mbcccbm", -- 2 + "mbcccbm", -- 3 + "mbcccbm", -- 4 + "mbbbbbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 3 + "mmmmmmm", -- 0 + "mbbbbbm", -- 1 + "mbcccbm", -- 2 + "mbcccbm", -- 3 + "mbcccbm", -- 4 + "mbbbbbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 4 + "mmmmmmm", -- 0 + "mbbbbbm", -- 1 + "mbcccbm", -- 2 + "mbcccbm", -- 3 + "mbcccbm", -- 4 + "mbbbbbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 5 + "mmmmmmm", -- 0 + "mbbbbbm", -- 1 + "mbcccbm", -- 2 + "mbcccbm", -- 3 + "mbcccbm", -- 4 + "mbbbbbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 6 + "mmmmmmm", -- 0 + "mbbbbbm", -- 1 + "mbcccbm", -- 2 + "mbcccbm", -- 3 + "mbcccbm", -- 4 + "mbbbbbm", -- 5 + "mmmmmmm", -- 6 + + -- Level 7 + "mmbbbmm", -- 0 + "mbbbbbm", -- 1 + "bbcccbb", -- 2 + "bbcccbb", -- 3 + "bbcccbb", -- 4 + "mbbbbbm", -- 5 + "mmbbbmm", -- 6 + + -- Level 8 + "mmdddmm", -- 0 + "mbbbbbm", -- 1 + "dbcccbd", -- 2 + "dbcccbd", -- 3 + "dbcccbd", -- 4 + "mbbbbbm", -- 5 + "mmdddmm", -- 6 + + -- Level 9 + "mm...mm", -- 0 + "mbefgbm", -- 1 + ".h...h.", -- 2 + ".g...e.", -- 3 + ".f...f.", -- 4 + "mbehgbm", -- 5 + "mm...mm", -- 6 + + -- Level 10 + "mm...mm", -- 0 + "mi...im", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + "mi...im", -- 5 + "mm...mm", -- 6 + + -- Level 11 + "mm...mm", -- 0 + "mi...im", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + "mi...im", -- 5 + "mm...mm", -- 6 + + -- Level 12 + "mjkkkjm", -- 0 + "jlllllj", -- 1 + "klllllk", -- 2 + "klllllk", -- 3 + "klllllk", -- 4 + "jlllllj", -- 5 + "mjkkkjm", -- 6 + + -- Level 13 + "k.....k", -- 0 + ".......", -- 1 + "..kkk..", -- 2 + "..klk..", -- 3 + "..kkk..", -- 4 + ".......", -- 5 + "k.....k", -- 6 + + }, + }, -- Well + + + + { + OriginData = + { + ExportName = "Arch", + Name = "Plains 144", + GalleryName = "Plains", + GalleryIndex = "144", + ID = "488", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 7, + z = 5, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 6, + MaxZ = 4, + }, + Connectors = + { + { + Type = 2, + RelX = 5, + RelY = 1, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 2: 0", -- grass + "b: 13: 0", -- gravel + "c:113: 0", -- netherbrickfence + "d: 50: 5", -- torch + "e: 44: 8", -- step + "f: 44: 0", -- step + "g: 43: 0", -- doublestep + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaabbbaaaa", -- 0 + "aaaabbbaaaa", -- 1 + "aaaabbbaaaa", -- 2 + "aaaabbbaaaa", -- 3 + "aaaabbbaaaa", -- 4 + + -- Level 1 + "..c.....c..", -- 0 + "..c.....c..", -- 1 + "..c.....c..", -- 2 + "..c.....c..", -- 3 + "..c.....c..", -- 4 + + -- Level 2 + "..c.....c..", -- 0 + "...........", -- 1 + "..c.....c..", -- 2 + "...........", -- 3 + "..c.....c..", -- 4 + + -- Level 3 + "..d.....d..", -- 0 + "...........", -- 1 + "..c.....c..", -- 2 + "...........", -- 3 + "..d.....d..", -- 4 + + -- Level 4 + "...eeeee...", -- 0 + "...........", -- 1 + "..c.....c..", -- 2 + "...........", -- 3 + "...eeeee...", -- 4 + + -- Level 5 + "..f.....f..", -- 0 + ".egfffffge.", -- 1 + ".egeeeeege.", -- 2 + ".egfffffge.", -- 3 + "..f.....f..", -- 4 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "gf.......fg", -- 2 + "...........", -- 3 + "...........", -- 4 + + }, + }, -- Arch + + + + { + OriginData = + { + ExportName = "SakuraSmall", + Name = "Plains 145", + GalleryName = "Plains", + GalleryIndex = "145", + ID = "489", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 5, + y = 7, + z = 5, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 5, + MaxY = 6, + MaxZ = 5, + }, + Connectors = + { + { + Type = -1, + RelX = 2, + RelY = 2, + RelZ = -1, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 5, + RelY = 2, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = -1, + RelY = 2, + RelZ = 2, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 2: 0", -- grass + "c: 17: 1", -- tree + "d: 35: 6", -- wool + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + + -- Level 1 + "bbbbb", -- 0 + "bbbbb", -- 1 + "bbabb", -- 2 + "bbbbb", -- 3 + "bbbbb", -- 4 + + -- Level 2 + ".....", -- 0 + ".....", -- 1 + "..c..", -- 2 + ".....", -- 3 + ".....", -- 4 + + -- Level 3 + ".....", -- 0 + ".....", -- 1 + "..c..", -- 2 + ".....", -- 3 + ".....", -- 4 + + -- Level 4 + "..d..", -- 0 + "ddddd", -- 1 + "ddcdd", -- 2 + "ddddd", -- 3 + "..d..", -- 4 + + -- Level 5 + ".ddd.", -- 0 + ".ddd.", -- 1 + "ddddd", -- 2 + ".ddd.", -- 3 + ".ddd.", -- 4 + + -- Level 6 + ".....", -- 0 + "..d..", -- 1 + ".ddd.", -- 2 + "..d..", -- 3 + ".....", -- 4 + + }, + }, -- SakuraSmall + + + + { + OriginData = + { + ExportName = "MediumSakuraTree", + Name = "Plains 146", + GalleryName = "Plains", + GalleryIndex = "146", + ID = "490", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 10, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 9, + MaxZ = 6, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 6, + RelY = 2, + RelZ = 3, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 0, + RelY = 2, + RelZ = 3, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 2: 0", -- grass + "c: 31: 1", -- tallgrass + "d: 38: 7", -- rose + "e: 17: 1", -- tree + "f: 38: 0", -- rose + "g: 38: 8", -- rose + "h: 38: 5", -- rose + "i: 35: 6", -- wool + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaa", -- 0 + "aaaaaaa", -- 1 + "aaaaaaa", -- 2 + "aaaaaaa", -- 3 + "aaaaaaa", -- 4 + "aaaaaaa", -- 5 + "aaaaaaa", -- 6 + + -- Level 1 + "bbbbbbb", -- 0 + "bbbbbbb", -- 1 + "bbbbbbb", -- 2 + "bbbabbb", -- 3 + "bbbbbbb", -- 4 + "bbbbbbb", -- 5 + "bbbbbbb", -- 6 + + -- Level 2 + "mm...mm", -- 0 + "m.c...m", -- 1 + ".dccdc.", -- 2 + "..cefc.", -- 3 + ".ccfgh.", -- 4 + "m.ccc.m", -- 5 + "mm...mm", -- 6 + + -- Level 3 + "m.....m", -- 0 + ".......", -- 1 + ".......", -- 2 + "...e...", -- 3 + ".......", -- 4 + ".......", -- 5 + "m.....m", -- 6 + + -- Level 4 + ".......", -- 0 + "..i....", -- 1 + ".......", -- 2 + "...e.i.", -- 3 + ".i.....", -- 4 + ".......", -- 5 + ".......", -- 6 + + -- Level 5 + ".......", -- 0 + "..i....", -- 1 + "...i...", -- 2 + "..ieii.", -- 3 + ".i.ii..", -- 4 + "...i...", -- 5 + ".......", -- 6 + + -- Level 6 + ".......", -- 0 + "..ii...", -- 1 + "..iii..", -- 2 + ".iieii.", -- 3 + ".iiii..", -- 4 + "..iii..", -- 5 + ".......", -- 6 + + -- Level 7 + ".......", -- 0 + "..iii..", -- 1 + ".iiiii.", -- 2 + ".iieii.", -- 3 + ".iiiii.", -- 4 + "..iii..", -- 5 + ".......", -- 6 + + -- Level 8 + ".......", -- 0 + "...i...", -- 1 + "..iiii.", -- 2 + ".iiiii.", -- 3 + "..iii..", -- 4 + "...i...", -- 5 + ".......", -- 6 + + -- Level 9 + ".......", -- 0 + ".......", -- 1 + "...i...", -- 2 + "..iii..", -- 3 + "...i...", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- MediumSakuraTree + + + + { + OriginData = + { + ExportName = "Garden2", + Name = "Plains 147", + GalleryName = "Plains", + GalleryIndex = "147", + ID = "491", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 16, + y = 5, + z = 16, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 15, + MaxY = 4, + MaxZ = 15, + }, + Connectors = + { + { + Type = -1, + RelX = 12, + RelY = 3, + RelZ = 15, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 8: 0", -- water + "c: 2: 0", -- grass + "d: 17: 1", -- tree + "e: 13: 0", -- gravel + "f: 31: 2", -- tallgrass + "g: 18: 5", -- leaves + "h: 38: 7", -- rose + "i: 17: 9", -- tree + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaaaaaa", -- 5 + "aaaaaaaaaaaaaaaa", -- 6 + "aaaaaaaaaaaaaaaa", -- 7 + "aaaaaaaaaaaaaaaa", -- 8 + "aaaaaaaaaaaaaaaa", -- 9 + "aaaaaaaaaaaaaaaa", -- 10 + "aaaaaaaaaaaaaaaa", -- 11 + "aaaaaaaaaaaaaaaa", -- 12 + "aaaaaaaaaaaaaaaa", -- 13 + "aaaaaaaaaaaaaaaa", -- 14 + "aaaaaaaaaaaaaaaa", -- 15 + + -- Level 1 + "aaaaaaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaaaaaa", -- 5 + "aaaabbaaaaaaaaaa", -- 6 + "aaabbbaaaaaaaaaa", -- 7 + "aaabbaaaaaaaaaaa", -- 8 + "aaaabaaaaaaaaaaa", -- 9 + "aaaaaaaaaaaaaaaa", -- 10 + "aaaaaaaaaaaaaaaa", -- 11 + "aaaaaaaaaaaaaaaa", -- 12 + "aaaaaaaaaaaaaaaa", -- 13 + "aaaaaaaaaaaaaaaa", -- 14 + "aaaaaaaaaaaaaaaa", -- 15 + + -- Level 2 + "cccccccccccccccc", -- 0 + "ccdccccccccdcccc", -- 1 + "cccccceecccccdcc", -- 2 + "ccccccceeccccccc", -- 3 + "cccccccceccccccc", -- 4 + "cccbbbbceccccccc", -- 5 + "cccbbbbceecccccc", -- 6 + "ccbbbbbcceeeeccc", -- 7 + "ccbbbbbccccceecc", -- 8 + "ccbbbbcccccccecc", -- 9 + "ccccbcccccccceec", -- 10 + "ccccccccccccccec", -- 11 + "ccccccccaaacccec", -- 12 + "cccccccccaccccec", -- 13 + "ccccccccccccceec", -- 14 + "cccccccccccceecc", -- 15 + + -- Level 3 + "......f...gg.g..", -- 0 + "..gg.....gggggg.", -- 1 + "ffgg......ghgggg", -- 2 + ".............gg.", -- 3 + "...........f....", -- 4 + "...........h.ff.", -- 5 + ".............fh.", -- 6 + "...............f", -- 7 + "................", -- 8 + ".......ff.f.....", -- 9 + ".f.....ffggf....", -- 10 + ".......gggg.f...", -- 11 + ".f......iddg....", -- 12 + ".....f..gdgg....", -- 13 + "....ff...gg.....", -- 14 + "................", -- 15 + + -- Level 4 + "................", -- 0 + "...........g.g..", -- 1 + ".............gg.", -- 2 + "................", -- 3 + "................", -- 4 + "................", -- 5 + "................", -- 6 + "................", -- 7 + "................", -- 8 + "................", -- 9 + ".........g......", -- 10 + "........ggg.....", -- 11 + "........ggg.....", -- 12 + ".........g......", -- 13 + "................", -- 14 + "................", -- 15 + + }, + }, -- Garden2 + + + + { + OriginData = + { + ExportName = "Farm", + Name = "Plains 166", + GalleryName = "Plains", + GalleryIndex = "166", + ID = "554", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 8, + z = 13, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 7, + MaxZ = 12, + }, + Connectors = + { + { + Type = -1, + RelX = 10, + RelY = 2, + RelZ = 6, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 60: 7", -- tilleddirt + "c: 8: 0", -- water + "d: 43: 0", -- doublestep + "e: 44: 0", -- step + "f: 59: 7", -- crops + "g: 83: 0", -- reedblock + "h:113: 0", -- netherbrickfence + "i: 50: 5", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "maaaaaaaaam", -- 8 + "maaaaaaaaam", -- 9 + "maaaaaaaaam", -- 10 + "maaaaaaaaam", -- 11 + "mmmmmmmmmmm", -- 12 + + -- Level 1 + "mmmmmmmmmmm", -- 0 + "maaaaaaaaam", -- 1 + "mabbbbbbbam", -- 2 + "mabbbbbbbam", -- 3 + "mabbbbbbbam", -- 4 + "mabbbbbbbam", -- 5 + "mabcccccaam", -- 6 + "mabbbbbbbam", -- 7 + "mabbbbbbbam", -- 8 + "mabbbbbbbam", -- 9 + "mabbbbbbbam", -- 10 + "maaaaaaaaam", -- 11 + "mmmmmmmmmmm", -- 12 + + -- Level 2 + "...........", -- 0 + ".deeeeeeed.", -- 1 + ".efffffffe.", -- 2 + ".efffffffe.", -- 3 + ".efffffffe.", -- 4 + ".efgggggfe.", -- 5 + ".eg.....ge.", -- 6 + ".efgggggfe.", -- 7 + ".efffffffe.", -- 8 + ".efffffffe.", -- 9 + ".efffffffe.", -- 10 + ".deeeeeeed.", -- 11 + "...........", -- 12 + + -- Level 3 + "...........", -- 0 + ".h.......h.", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + "...ggggg...", -- 5 + "..g.....g..", -- 6 + "...ggggg...", -- 7 + "...........", -- 8 + "...........", -- 9 + "...........", -- 10 + ".h.......h.", -- 11 + "...........", -- 12 + + -- Level 4 + "...........", -- 0 + ".h.......h.", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + "...ggggg...", -- 5 + "..g.....g..", -- 6 + "...ggggg...", -- 7 + "...........", -- 8 + "...........", -- 9 + "...........", -- 10 + ".h.......h.", -- 11 + "...........", -- 12 + + -- Level 5 + "...........", -- 0 + ".h.......h.", -- 1 + "...........", -- 2 + "...........", -- 3 + "...........", -- 4 + "...........", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + "...........", -- 9 + "...........", -- 10 + ".h.......h.", -- 11 + "...........", -- 12 + + -- Level 6 + ".h.......h.", -- 0 + "hhh.....hhh", -- 1 + ".h.......h.", -- 2 + "...........", -- 3 + "...........", -- 4 + "...........", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + "...........", -- 9 + ".h.......h.", -- 10 + "hhh.....hhh", -- 11 + ".h.......h.", -- 12 + + -- Level 7 + ".i.......i.", -- 0 + "i.i.....i.i", -- 1 + ".i.......i.", -- 2 + "...........", -- 3 + "...........", -- 4 + "...........", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + "...........", -- 9 + ".i.......i.", -- 10 + "i.i.....i.i", -- 11 + ".i.......i.", -- 12 + + }, + }, -- Farm + }, -- Pieces +} + + + + diff --git a/MCServer/Prefabs/Villages/PlainsVillage.cubeset b/MCServer/Prefabs/Villages/PlainsVillage.cubeset new file mode 100644 index 000000000..0ad53a762 --- /dev/null +++ b/MCServer/Prefabs/Villages/PlainsVillage.cubeset @@ -0,0 +1,6521 @@ + +-- PlainsVillage.cubeset + +-- Defines the prefabs in the group PlainsVillage + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2015-06-20 10:16:55", + ["AllowedBiomes"] = "Plains, Savanna, SavannaM, SunflowerPlains", + ["IntendedUse"] = "Village", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "WoodenHouseL14x14", + Name = "Plains 0", + GalleryName = "Plains", + GalleryIndex = "0", + ID = "4", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 16, + y = 8, + z = 16, + }, + Hitbox = + { + MinX = -1, + MinY = 1, + MinZ = 0, + MaxX = 16, + MaxY = 7, + MaxZ = 16, + }, + Connectors = + { + { + Type = -1, + RelX = 9, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 5: 0", -- planks + "f: 67: 3", -- stairs + "g: 17: 0", -- tree + "h: 64: 3", -- wooddoorblock + "i: 64: 1", -- wooddoorblock + "j:102: 0", -- glasspane + "k: 64: 9", -- wooddoorblock + "l: 53: 2", -- woodstairs + "m: 19: 0", -- sponge + "n: 53: 1", -- woodstairs + "o: 53: 7", -- woodstairs + "p: 53: 6", -- woodstairs + "q: 53: 3", -- woodstairs + "r: 53: 0", -- woodstairs + "s: 53: 5", -- woodstairs + "t: 53: 4", -- woodstairs + "u: 50: 3", -- torch + "v: 50: 2", -- torch + "w: 50: 4", -- torch + "x: 50: 1", -- torch + }, + BlockData = + { + -- Level 0 + "mmmmmmmmaaammmmm", -- 0 + "maaaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaaaam", -- 7 + "mmmmmaaaaaaaaaam", -- 8 + "mmmmmmmmaaaaaaam", -- 9 + "mmmmmmmmaaaaaaam", -- 10 + "mmmmmmmmaaaaaaam", -- 11 + "mmmmmmmmaaaaaaam", -- 12 + "mmmmmmmmaaaaaaam", -- 13 + "mmmmmmmmaaaaaaam", -- 14 + "mmmmmmmmmmmmmmmm", -- 15 + + -- Level 1 + "........bcd.....", -- 0 + ".aaaaaaaaaaaaaa.", -- 1 + ".aeeeeeeeeeeeea.", -- 2 + ".aeeeeeeeeeeeea.", -- 3 + ".aeeeeeeeeeeeea.", -- 4 + ".aeeeeeeeeeeeea.", -- 5 + ".aeeeeeeeeeeeea.", -- 6 + ".aaaaaaaaeeeeea.", -- 7 + ".....bfdaeeeeea.", -- 8 + "mmmm....aeeeeea.", -- 9 + "mmmmmmm.aeeeeea.", -- 10 + "mmmmmmm.aeeeeea.", -- 11 + "mmmmmmm.aeeeeea.", -- 12 + "mmmmmmm.aeeeeea.", -- 13 + "mmmmmmm.aaaaaaa.", -- 14 + "mmmmmmm.........", -- 15 + + -- Level 2 + "................", -- 0 + ".geeeeeeghgeeeg.", -- 1 + ".e............e.", -- 2 + ".e............e.", -- 3 + ".e............e.", -- 4 + ".e............e.", -- 5 + ".e............e.", -- 6 + ".geeeeieg.....e.", -- 7 + "........e.....e.", -- 8 + "mmmm....e.....e.", -- 9 + "mmmmmmm.e.....e.", -- 10 + "mmmmmmm.e.....e.", -- 11 + "mmmmmmm.e.....e.", -- 12 + "mmmmmmm.e.....e.", -- 13 + "mmmmmmm.geeeeeg.", -- 14 + "mmmmmmm.........", -- 15 + + -- Level 3 + "................", -- 0 + ".gejjejjgkgjjeg.", -- 1 + ".j............e.", -- 2 + ".j............j.", -- 3 + ".j............j.", -- 4 + ".j............e.", -- 5 + ".j............j.", -- 6 + ".gejjekeg.....j.", -- 7 + "........e.....e.", -- 8 + "mmmm....j.....j.", -- 9 + "mmmmmmm.j.....j.", -- 10 + "mmmmmmm.e.....e.", -- 11 + "mmmmmmm.j.....j.", -- 12 + "mmmmmmm.j.....j.", -- 13 + "mmmmmmm.gjjjjjg.", -- 14 + "mmmmmmm.........", -- 15 + + -- Level 4 + "llllllllllllllln", -- 0 + "ogeeeeeegegeeegn", -- 1 + ".e............en", -- 2 + ".e............en", -- 3 + ".e............en", -- 4 + ".e............en", -- 5 + ".e............en", -- 6 + "pgeeeeeeg.....en", -- 7 + "qqqqqqqre.....en", -- 8 + "mmmm...re.....en", -- 9 + "mmmmmmmre.....en", -- 10 + "mmmmmmmre.....en", -- 11 + "mmmmmmmre.....en", -- 12 + "mmmmmmmre.....en", -- 13 + "mmmmmmmrgeeeeegn", -- 14 + "mmmmmmmrs.....tn", -- 15 + + -- Level 5 + "................", -- 0 + "lllllllllllllll.", -- 1 + "oeeeeeeeeeeeeen.", -- 2 + ".e.........u.en.", -- 3 + ".e..........ven.", -- 4 + ".e......w....en.", -- 5 + "peeeeeeeee...en.", -- 6 + "qqqqqqqqrex..en.", -- 7 + "........re...en.", -- 8 + "mmmm....re...en.", -- 9 + "mmmmmmm.re...en.", -- 10 + "mmmmmmm.re...en.", -- 11 + "mmmmmmm.re...en.", -- 12 + "mmmmmmm.re...en.", -- 13 + "mmmmmmm.reeeeen.", -- 14 + "mmmmmmm.rs...tn.", -- 15 + + -- Level 6 + "................", -- 0 + "................", -- 1 + "llllllllllllln..", -- 2 + "oeeeeeeeeeeeen..", -- 3 + ".ex.........en..", -- 4 + "peeeeeeeeee.en..", -- 5 + "qqqqqqqqqre.en..", -- 6 + ".........re.en..", -- 7 + ".........re.en..", -- 8 + "mmmm.....re.en..", -- 9 + "mmmmmmm..re.en..", -- 10 + "mmmmmmm..re.en..", -- 11 + "mmmmmmm..re.en..", -- 12 + "mmmmmmm..rewen..", -- 13 + "mmmmmmm..reeen..", -- 14 + "mmmmmmm..rs.tn..", -- 15 + + -- Level 7 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "lllllllllllll...", -- 3 + "eeeeeeeeeeeen...", -- 4 + "qqqqqqqqqqren...", -- 5 + "..........ren...", -- 6 + "..........ren...", -- 7 + "..........ren...", -- 8 + "mmmm......ren...", -- 9 + "mmmmmmm...ren...", -- 10 + "mmmmmmm...ren...", -- 11 + "mmmmmmm...ren...", -- 12 + "mmmmmmm...ren...", -- 13 + "mmmmmmm...ren...", -- 14 + "mmmmmmm...ren...", -- 15 + + }, + }, -- WoodenHouseL14x14 + + + + { + OriginData = + { + ExportName = "CobbleWell4x4", + Name = "Plains 1", + GalleryName = "Plains", + GalleryIndex = "1", + ID = "5", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 4, + y = 13, + z = 4, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 3, + MaxY = 12, + MaxZ = 3, + }, + Connectors = + { + { + Type = 2, + RelX = 1, + RelY = 9, + RelZ = 3, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 2, + RelY = 9, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 2, + RelX = 0, + RelY = 9, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 3, + RelY = 9, + RelZ = 2, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 4: 0", -- cobblestone + "c: 8: 0", -- water + "d: 85: 0", -- fence + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaa", -- 0 + "aaaa", -- 1 + "aaaa", -- 2 + "aaaa", -- 3 + + -- Level 1 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 2 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 3 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 4 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 5 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 6 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 7 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 8 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 9 + "bbbb", -- 0 + "b..b", -- 1 + "b..b", -- 2 + "bbbb", -- 3 + + -- Level 10 + "d..d", -- 0 + "....", -- 1 + "....", -- 2 + "d..d", -- 3 + + -- Level 11 + "d..d", -- 0 + "....", -- 1 + "....", -- 2 + "d..d", -- 3 + + -- Level 12 + "bbbb", -- 0 + "bbbb", -- 1 + "bbbb", -- 2 + "bbbb", -- 3 + + }, + }, -- CobbleWell4x4 + + + + { + OriginData = + { + ExportName = "DoublePlantBed", + Name = "Plains 5", + GalleryName = "Plains", + GalleryIndex = "5", + ID = "20", + CreatorName = "tonibm1999", + }, + Size = + { + x = 15, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 7, + MaxZ = 8, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 2, + RelZ = 8, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 2: 0", -- grass + "c: 17: 0", -- tree + "d: 60: 7", -- tilleddirt + "e: 8: 0", -- water + "f: 60: 5", -- tilleddirt + "g: 60: 4", -- tilleddirt + "h: 60: 1", -- tilleddirt + "i: 50: 5", -- torch + "j: 59: 7", -- crops + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaabaaaaaaa", -- 0 + "aaaaaaabaaaaaaa", -- 1 + "aaaaaaabaaaaaaa", -- 2 + "aaaaaaabaaaaaaa", -- 3 + "aaaaaaabaaaaaaa", -- 4 + "aaaaaaabaaaaaaa", -- 5 + "aaaaaaabaaaaaaa", -- 6 + "aaaaaaabaaaaaaa", -- 7 + "aaaaaaabaaaaaaa", -- 8 + + -- Level 1 + "aaaaaaamaaaaaaa", -- 0 + "aaaaaaamaaaaaaa", -- 1 + "aaaaaaamaaaaaaa", -- 2 + "aaaaaaamaaaaaaa", -- 3 + "aaaaaaamaaaaaaa", -- 4 + "aaaaaaamaaaaaaa", -- 5 + "aaaaaaamaaaaaaa", -- 6 + "aaaaaaamaaaaaaa", -- 7 + "aaaaaaamaaaaaaa", -- 8 + + -- Level 2 + "ccccccc.ccccccc", -- 0 + "cddeddc.cddeddc", -- 1 + "cddeddc.cddeddc", -- 2 + "cddeddc.cddeddc", -- 3 + "cddeddc.cddeddc", -- 4 + "cddeddc.cddeddc", -- 5 + "cdfeddc.cdgeddc", -- 6 + "cdfefhc.cddeddc", -- 7 + "ccccccc.ccccccc", -- 8 + + -- Level 3 + "i.....i.i.....i", -- 0 + ".jj.jj...jj.jj.", -- 1 + ".jj.jj...jj.jj.", -- 2 + ".jj.jj...jj.jj.", -- 3 + ".jj.jj...jj.jj.", -- 4 + ".jj.jj...jj.jj.", -- 5 + ".jj.jj...jj.jj.", -- 6 + ".jj.jj...jj.jj.", -- 7 + "i.....i.i.....i", -- 8 + + -- Level 4 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + + -- Level 5 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + + -- Level 6 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + + -- Level 7 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + + }, + }, -- DoublePlantBed + + + + { + OriginData = + { + ExportName = "WoodenHouse9x5Fence", + Name = "p9", + GalleryName = "Plains", + GalleryIndex = "9", + ID = "26", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 10, + y = 7, + z = 11, + }, + Hitbox = + { + MinX = 0, + MinY = -1, + MinZ = -1, + MaxX = 10, + MaxY = 6, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 0, + RelY = 1, + RelZ = 5, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 3: 0", -- dirt + "c: 5: 0", -- planks + "d: 2: 0", -- grass + "e: 67: 2", -- stairs + "f: 43: 0", -- doublestep + "g: 67: 0", -- stairs + "h: 67: 3", -- stairs + "i: 17: 0", -- tree + "j: 53: 1", -- woodstairs + "k: 85: 0", -- fence + "l: 53: 0", -- woodstairs + "m: 19: 0", -- sponge + "n: 64: 2", -- wooddoorblock + "o: 64: 0", -- wooddoorblock + "p:102: 0", -- glasspane + "q: 72: 0", -- woodplate + "r: 64: 9", -- wooddoorblock + "s: 53: 5", -- woodstairs + "t: 53: 4", -- woodstairs + "u: 50: 1", -- torch + "v: 50: 2", -- torch + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmm", -- 0 + "maaaaammmm", -- 1 + "maaaaammmm", -- 2 + "maaaaabbbb", -- 3 + "aaaaaabbbb", -- 4 + "aaaaaabbbb", -- 5 + "aaaaaabbbb", -- 6 + "maaaaabbbb", -- 7 + "maaaaabbbb", -- 8 + "maaaaammmm", -- 9 + "mmmmmmmmmm", -- 10 + + -- Level 1 + "......mmmm", -- 0 + ".aaaaammmm", -- 1 + ".acccammmm", -- 2 + ".acccadddd", -- 3 + "eafffadddd", -- 4 + "gaffffdddd", -- 5 + "hafffadddd", -- 6 + ".afffadddd", -- 7 + ".afffadddd", -- 8 + ".aaaaammmm", -- 9 + "......mmmm", -- 10 + + -- Level 2 + "......mmmm", -- 0 + ".icccimmmm", -- 1 + ".cjklcmmmm", -- 2 + ".c...ckkkk", -- 3 + ".c...c...k", -- 4 + ".n...o...k", -- 5 + ".c...c...k", -- 6 + ".cff.c...k", -- 7 + ".c...ckkkk", -- 8 + ".icccimmmm", -- 9 + "......mmmm", -- 10 + + -- Level 3 + "......mmmm", -- 0 + ".ipppimmmm", -- 1 + ".p.q.pmmmm", -- 2 + ".p...p....", -- 3 + ".c...c....", -- 4 + ".r...r....", -- 5 + ".c...c....", -- 6 + ".p...p....", -- 7 + ".p...p....", -- 8 + ".ipppimmmm", -- 9 + "......mmmm", -- 10 + + -- Level 4 + "ls...tjmmm", -- 0 + "licccijmmm", -- 1 + "lc...cjmmm", -- 2 + "lc...cj...", -- 3 + "lcu.vcj...", -- 4 + "lc...cj...", -- 5 + "lcu.vcj...", -- 6 + "lc...cj...", -- 7 + "lc...cj...", -- 8 + "licccijmmm", -- 9 + "ls...tjmmm", -- 10 + + -- Level 5 + ".ls.tj.mmm", -- 0 + ".lcccj.mmm", -- 1 + ".lc.cj.mmm", -- 2 + ".lc.cj....", -- 3 + ".lc.cj....", -- 4 + ".lc.cj....", -- 5 + ".lc.cj....", -- 6 + ".lc.cj....", -- 7 + ".lc.cj....", -- 8 + ".lcccj.mmm", -- 9 + ".ls.tj.mmm", -- 10 + + -- Level 6 + "..lcj..mmm", -- 0 + "..lcj..mmm", -- 1 + "..lcj..mmm", -- 2 + "..lcj.....", -- 3 + "..lcj.....", -- 4 + "..lcj.....", -- 5 + "..lcj.....", -- 6 + "..lcj.....", -- 7 + "..lcj.....", -- 8 + "..lcj..mmm", -- 9 + "..lcj..mmm", -- 10 + + }, + }, -- WoodenHouse9x5Fence + + + + { + OriginData = + { + ExportName = "SinglePlantBed", + Name = "Plains 17", + GalleryName = "Plains", + GalleryIndex = "17", + ID = "60", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 10, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 6, + MaxZ = 6, + }, + Connectors = + { + { + Type = -1, + RelX = 9, + RelY = 1, + RelZ = 3, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 17: 0", -- tree + "c: 60: 7", -- tilleddirt + "d: 60: 6", -- tilleddirt + "e: 8: 0", -- water + "f: 59: 7", -- crops + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaa", -- 0 + "aaaaaaaaaa", -- 1 + "aaaaaaaaaa", -- 2 + "aaaaaaaaaa", -- 3 + "aaaaaaaaaa", -- 4 + "aaaaaaaaaa", -- 5 + "aaaaaaaaaa", -- 6 + + -- Level 1 + "bbbbbbbbbb", -- 0 + "bccccccccb", -- 1 + "bcccccdccb", -- 2 + "beeeeeeeeb", -- 3 + "bccccccccb", -- 4 + "bccccccccb", -- 5 + "bbbbbbbbbb", -- 6 + + -- Level 2 + "..........", -- 0 + ".ffffffff.", -- 1 + ".ffffffff.", -- 2 + "..........", -- 3 + ".ffffffff.", -- 4 + ".ffffffff.", -- 5 + "..........", -- 6 + + -- Level 3 + "..........", -- 0 + "..........", -- 1 + "..........", -- 2 + "..........", -- 3 + "..........", -- 4 + "..........", -- 5 + "..........", -- 6 + + -- Level 4 + "..........", -- 0 + "..........", -- 1 + "..........", -- 2 + "..........", -- 3 + "..........", -- 4 + "..........", -- 5 + "..........", -- 6 + + -- Level 5 + "..........", -- 0 + "..........", -- 1 + "..........", -- 2 + "..........", -- 3 + "..........", -- 4 + "..........", -- 5 + "..........", -- 6 + + -- Level 6 + "..........", -- 0 + "..........", -- 1 + "..........", -- 2 + "..........", -- 3 + "..........", -- 4 + "..........", -- 5 + "..........", -- 6 + + }, + }, -- SinglePlantBed + + + + { + OriginData = + { + ExportName = "CobbleHouse10x5Library", + Name = "Plains 23", + GalleryName = "Plains", + GalleryIndex = "23", + ID = "66", + CreatorName = "xoft", + }, + Size = + { + x = 12, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 12, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 8, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 64: 3", -- wooddoorblock + "f: 53: 3", -- woodstairs + "g: 53: 1", -- woodstairs + "h: 85: 0", -- fence + "i: 53: 0", -- woodstairs + "j: 53: 2", -- woodstairs + "k:102: 0", -- glasspane + "l: 64: 9", -- wooddoorblock + "m: 19: 0", -- sponge + "n: 50: 3", -- torch + "o: 72: 0", -- woodplate + "p: 50: 4", -- torch + "q: 53: 7", -- woodstairs + "r: 47: 0", -- bookshelf + "s: 50: 1", -- torch + "t: 50: 2", -- torch + "u: 53: 6", -- woodstairs + "v: 5: 0", -- planks + }, + BlockData = + { + -- Level 0 + "mmmmmmmaaamm", -- 0 + "maaaaaaaaaam", -- 1 + "maaaaaaaaaam", -- 2 + "maaaaaaaaaam", -- 3 + "maaaaaaaaaam", -- 4 + "maaaaaaaaaam", -- 5 + "mmmmmmmmmmmm", -- 6 + + -- Level 1 + ".......bcd..", -- 0 + ".aaaaaaaaaa.", -- 1 + ".aaaaaaaaaa.", -- 2 + ".aaaaaaaaaa.", -- 3 + ".aaaaaaaaaa.", -- 4 + ".aaaaaaaaaa.", -- 5 + "............", -- 6 + + -- Level 2 + "............", -- 0 + ".aaaaaaaeaa.", -- 1 + ".af.ghi...a.", -- 2 + ".ah.......a.", -- 3 + ".aj.ghighia.", -- 4 + ".aaaaaaaaaa.", -- 5 + "............", -- 6 + + -- Level 3 + "............", -- 0 + ".akkakkalaa.", -- 1 + ".k..no.n.nk.", -- 2 + ".ko.......k.", -- 3 + ".k..po.po.k.", -- 4 + ".akkakkakka.", -- 5 + "............", -- 6 + + -- Level 4 + "jjjjjjjjjjjj", -- 0 + "qaaaaaaaaaaq", -- 1 + ".arrrrrrrra.", -- 2 + ".as......ta.", -- 3 + ".arrrrrrrra.", -- 4 + "uaaaaaaaaaau", -- 5 + "ffffffffffff", -- 6 + + -- Level 5 + "............", -- 0 + "jjjjjjjjjjjj", -- 1 + "qvvvvvvvvvvq", -- 2 + ".vvvvvvvvvv.", -- 3 + "uvvvvvvvvvvu", -- 4 + "ffffffffffff", -- 5 + "............", -- 6 + + -- Level 6 + "............", -- 0 + "............", -- 1 + "jjjjjjjjjjjj", -- 2 + "vvvvvvvvvvvv", -- 3 + "ffffffffffff", -- 4 + "............", -- 5 + "............", -- 6 + + }, + }, -- CobbleHouse10x5Library + + + + { + OriginData = + { + ExportName = "BigPlantBed", + Name = "Plains 26", + GalleryName = "Plains", + GalleryIndex = "26", + ID = "70", + CreatorName = "Taugrammaton", + }, + Size = + { + x = 13, + y = 8, + z = 12, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 12, + MaxY = 7, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 1, + RelZ = 11, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 5: 0", -- planks + "c: 13: 0", -- gravel + "d: 17: 0", -- tree + "e: 60: 7", -- tilleddirt + "f: 8: 0", -- water + "g: 60: 6", -- tilleddirt + "h: 85: 0", -- fence + "i: 59: 7", -- crops + "j: 50: 5", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaaa", -- 5 + "aaaaaaaaaaaaa", -- 6 + "aaaaaaaaaaaaa", -- 7 + "aaaaaaaaaaaaa", -- 8 + "aaaaaaaaaaaaa", -- 9 + "aaaaaaaaaaaaa", -- 10 + "aaaaaaaaaaaaa", -- 11 + + -- Level 1 + "bbbbbbbbbbbbb", -- 0 + "bcccccccccccb", -- 1 + "bcccccccccccb", -- 2 + "bcccccccccccb", -- 3 + "bcccccccccccb", -- 4 + "bcccccccccccb", -- 5 + "bcccccccccccb", -- 6 + "bcccccccccccb", -- 7 + "bcccccccccccb", -- 8 + "bcccccccccccb", -- 9 + "bcccccccccccb", -- 10 + "bbbbbbbbbbbbb", -- 11 + + -- Level 2 + "ddddddddddddd", -- 0 + "deefeefeefeed", -- 1 + "deefeefeefeed", -- 2 + "deefeefeefeed", -- 3 + "deefeefeefeed", -- 4 + "deefeefeefeed", -- 5 + "deefeefeefeed", -- 6 + "deefeefegfeed", -- 7 + "deefeefeefeed", -- 8 + "deefeefeefeed", -- 9 + "deefeefeefeed", -- 10 + "ddddddddddddd", -- 11 + + -- Level 3 + "h..h..h..h..h", -- 0 + "hii.i..ii.iih", -- 1 + "hii..i.ii.iih", -- 2 + "hii.i..i..iih", -- 3 + "hii.ii.i..iih", -- 4 + "hii.i..ii.iih", -- 5 + "hii.ii.ii.iih", -- 6 + "hii....i..iih", -- 7 + "hii..i....iih", -- 8 + "hii.....i.iih", -- 9 + "hii.ii.i..iih", -- 10 + "h..h..h..h..h", -- 11 + + -- Level 4 + "j..j..j..j..j", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + ".............", -- 4 + ".............", -- 5 + ".............", -- 6 + ".............", -- 7 + ".............", -- 8 + ".............", -- 9 + ".............", -- 10 + "j..j..j..j..j", -- 11 + + -- Level 5 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + ".............", -- 4 + ".............", -- 5 + ".............", -- 6 + ".............", -- 7 + ".............", -- 8 + ".............", -- 9 + ".............", -- 10 + ".............", -- 11 + + -- Level 6 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + ".............", -- 4 + ".............", -- 5 + ".............", -- 6 + ".............", -- 7 + ".............", -- 8 + ".............", -- 9 + ".............", -- 10 + ".............", -- 11 + + -- Level 7 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + ".............", -- 3 + ".............", -- 4 + ".............", -- 5 + ".............", -- 6 + ".............", -- 7 + ".............", -- 8 + ".............", -- 9 + ".............", -- 10 + ".............", -- 11 + + }, + }, -- BigPlantBed + + + + { + OriginData = + { + ExportName = "LampPost", + Name = "Plains 28", + GalleryName = "Plains", + GalleryIndex = "28", + ID = "73", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 3, + y = 7, + z = 3, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 2, + MaxY = 6, + MaxZ = 2, + }, + Connectors = + { + { + Type = -1, + RelX = 1, + RelY = 1, + RelZ = 2, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 3: 0", -- dirt + "b: 43: 0", -- doublestep + "c:139: 0", -- cobblestonewall + "d: 50: 4", -- torch + "e: 50: 2", -- torch + "f: 50: 1", -- torch + "g: 50: 3", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmm", -- 0 + "mam", -- 1 + "mmm", -- 2 + + -- Level 1 + "...", -- 0 + ".b.", -- 1 + "...", -- 2 + + -- Level 2 + "...", -- 0 + ".c.", -- 1 + "...", -- 2 + + -- Level 3 + "...", -- 0 + ".c.", -- 1 + "...", -- 2 + + -- Level 4 + ".d.", -- 0 + "ebf", -- 1 + ".g.", -- 2 + + -- Level 5 + "...", -- 0 + "...", -- 1 + "...", -- 2 + + -- Level 6 + "...", -- 0 + "...", -- 1 + "...", -- 2 + + }, + }, -- LampPost + + + + { + OriginData = + { + ExportName = "WoodenHouse9x7DoubleDoor", + Name = "Plains 38", + GalleryName = "Plains", + GalleryIndex = "38", + ID = "87", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 11, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 67: 3", -- stairs + "f: 17: 0", -- tree + "g: 5: 0", -- planks + "h: 64: 3", -- wooddoorblock + "i: 64: 1", -- wooddoorblock + "j:102: 0", -- glasspane + "k: 64: 9", -- wooddoorblock + "l: 53: 2", -- woodstairs + "m: 19: 0", -- sponge + "n: 53: 7", -- woodstairs + "o: 17: 4", -- tree + "p: 17: 8", -- tree + "q: 50: 3", -- torch + "r: 50: 4", -- torch + "s: 53: 6", -- woodstairs + "t: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "mmmmaaammmm", -- 8 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + ".aaaaaaaaa.", -- 6 + ".aaaaaaaaa.", -- 7 + "....bed....", -- 8 + + -- Level 2 + "...........", -- 0 + ".fggfhfggf.", -- 1 + ".g.......g.", -- 2 + ".g.......g.", -- 3 + ".f.......f.", -- 4 + ".g.......g.", -- 5 + ".g.......g.", -- 6 + ".fggfifggf.", -- 7 + "...........", -- 8 + + -- Level 3 + "...........", -- 0 + ".fjjfkfjjf.", -- 1 + ".j.......j.", -- 2 + ".j.......j.", -- 3 + ".f.......f.", -- 4 + ".j.......j.", -- 5 + ".j.......j.", -- 6 + ".fjjfkfjjf.", -- 7 + "...........", -- 8 + + -- Level 4 + "lllllllllll", -- 0 + "nfooooooofn", -- 1 + ".p..q.q..p.", -- 2 + ".p.......p.", -- 3 + ".p.......p.", -- 4 + ".p.......p.", -- 5 + ".p..r.r..p.", -- 6 + "sfooooooofs", -- 7 + "ttttttttttt", -- 8 + + -- Level 5 + "...........", -- 0 + "lllllllllll", -- 1 + "ngggggggggn", -- 2 + ".g.......g.", -- 3 + ".g.......g.", -- 4 + ".g.......g.", -- 5 + "sgggggggggs", -- 6 + "ttttttttttt", -- 7 + "...........", -- 8 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "lllllllllll", -- 2 + "ngggggggggn", -- 3 + ".g.......g.", -- 4 + "sgggggggggs", -- 5 + "ttttttttttt", -- 6 + "...........", -- 7 + "...........", -- 8 + + -- Level 7 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "lllllllllll", -- 3 + "ggggggggggg", -- 4 + "ttttttttttt", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + + }, + }, -- WoodenHouse9x7DoubleDoor + + + + { + OriginData = + { + ExportName = "WoodenHouseL13x14", + Name = "Plains 39", + GalleryName = "Plains", + GalleryIndex = "39", + ID = "90", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 15, + y = 9, + z = 16, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 15, + MaxY = 8, + MaxZ = 16, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A: 53: 7", -- woodstairs + "B: 53: 4", -- woodstairs + "C: 53: 5", -- woodstairs + "D: 53: 6", -- woodstairs + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 43: 0", -- doublestep + "f: 17: 0", -- tree + "g: 5: 0", -- planks + "h: 64: 3", -- wooddoorblock + "i: 96: 8", -- trapdoor + "j: 61: 2", -- furnace + "k: 53: 3", -- woodstairs + "l: 85: 0", -- fence + "m: 19: 0", -- sponge + "n: 53: 2", -- woodstairs + "o: 53: 1", -- woodstairs + "p: 53: 0", -- woodstairs + "q: 47: 0", -- bookshelf + "r:102: 0", -- glasspane + "s: 64: 9", -- wooddoorblock + "t: 72: 0", -- woodplate + "u: 17: 4", -- tree + "v: 17: 8", -- tree + "w: 50: 3", -- torch + "x: 50: 1", -- torch + "y: 50: 4", -- torch + "z: 50: 2", -- torch + }, + BlockData = + { + -- Level 0 + "mmmmmmaaammmmmm", -- 0 + "maaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaaam", -- 7 + "mmmmmmmmaaaaaam", -- 8 + "mmmmmmmmaaaaaam", -- 9 + "mmmmmmmmaaaaaam", -- 10 + "mmmmmmmmaaaaaam", -- 11 + "mmmmmmmmaaaaaam", -- 12 + "mmmmmmmmaaaaaam", -- 13 + "mmmmmmmmaaaaaam", -- 14 + "mmmmmmmmmmmmmmm", -- 15 + + -- Level 1 + "......bcd......", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".aeeeeaaaaaaaa.", -- 2 + ".aeeeeaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaaaa.", -- 7 + "........aaaaaa.", -- 8 + "mmmmmmm.aaaaaa.", -- 9 + "mmmmmmm.aaaaaa.", -- 10 + "mmmmmmm.aaaaaa.", -- 11 + "mmmmmmm.aaaaaa.", -- 12 + "mmmmmmm.aaaaaa.", -- 13 + "mmmmmmm.aaaaaa.", -- 14 + "mmmmmmm........", -- 15 + + -- Level 2 + "...............", -- 0 + ".fggggfhfggggf.", -- 1 + ".g...i.......g.", -- 2 + ".gjeee......kg.", -- 3 + ".f..........lg.", -- 4 + ".g..........ng.", -- 5 + ".g.olp..ol...g.", -- 6 + ".fggggggfn...f.", -- 7 + "........g....g.", -- 8 + "mmmmmmm.gk...g.", -- 9 + "mmmmmmm.gl..kg.", -- 10 + "mmmmmmm.gn..lg.", -- 11 + "mmmmmmm.g...ng.", -- 12 + "mmmmmmm.gq..qg.", -- 13 + "mmmmmmm.fggggf.", -- 14 + "mmmmmmm........", -- 15 + + -- Level 3 + "...............", -- 0 + ".fgrrgfsfgrrgf.", -- 1 + ".g...........g.", -- 2 + ".g...........r.", -- 3 + ".f..........tr.", -- 4 + ".g...........r.", -- 5 + ".g..t....t...g.", -- 6 + ".fgrrrrgf....f.", -- 7 + "........g....g.", -- 8 + "mmmmmmm.r....r.", -- 9 + "mmmmmmm.rt...r.", -- 10 + "mmmmmmm.r...tr.", -- 11 + "mmmmmmm.r....r.", -- 12 + "mmmmmmm.gq..qg.", -- 13 + "mmmmmmm.fgrrgf.", -- 14 + "mmmmmmm........", -- 15 + + -- Level 4 + "...............", -- 0 + ".fuuuuuuuuuuuf.", -- 1 + ".v....w.w....v.", -- 2 + ".v...........v.", -- 3 + ".vx..........v.", -- 4 + ".v...........v.", -- 5 + ".v......y....v.", -- 6 + ".fuuuuuufx..zv.", -- 7 + "........v....v.", -- 8 + "mmmmmmm.v....v.", -- 9 + "mmmmmmm.v....v.", -- 10 + "mmmmmmm.v....v.", -- 11 + "mmmmmmm.v....v.", -- 12 + "mmmmmmm.v.yy.v.", -- 13 + "mmmmmmm.fuuuuf.", -- 14 + "mmmmmmm........", -- 15 + + -- Level 5 + "nnnnnnnnnnnnnno", -- 0 + "pgggggggggggggo", -- 1 + "pgAAAAAAAAAABgo", -- 2 + "pgC.........Bgo", -- 3 + "pgC.........Bgo", -- 4 + "pgC.........Bgo", -- 5 + "pgCDDDDDDD..Bgo", -- 6 + "pggggggggC..Bgo", -- 7 + "pkkkkkkpgC..Bgo", -- 8 + "mmmmmmmpgC..Bgo", -- 9 + "mmmmmmmpgC..Bgo", -- 10 + "mmmmmmmpgC..Bgo", -- 11 + "mmmmmmmpgC..Bgo", -- 12 + "mmmmmmmpgCDDBgo", -- 13 + "mmmmmmmpggggggo", -- 14 + "mmmmmmmpkkkkkkk", -- 15 + + -- Level 6 + "...............", -- 0 + ".pnnnnnnnnnnno.", -- 1 + ".pgggggggggggo.", -- 2 + ".pgggggggggggo.", -- 3 + ".pgggggggggggo.", -- 4 + ".pgggggggggggo.", -- 5 + ".pgggggggggggo.", -- 6 + ".pkkkkkkkggggo.", -- 7 + "........pggggo.", -- 8 + "mmmmmmm.pggggo.", -- 9 + "mmmmmmm.pggggo.", -- 10 + "mmmmmmm.pggggo.", -- 11 + "mmmmmmm.pggggo.", -- 12 + "mmmmmmm.pggggo.", -- 13 + "mmmmmmm.kkkkko.", -- 14 + "mmmmmmm........", -- 15 + + -- Level 7 + "...............", -- 0 + "...............", -- 1 + "..nnnnnnnnnnn..", -- 2 + "..pgggggggggo..", -- 3 + "..pgggggggggo..", -- 4 + "..pgggggggggo..", -- 5 + "..kkkkkkkkggo..", -- 6 + ".........pggo..", -- 7 + ".........pggo..", -- 8 + "mmmmmmm..pggo..", -- 9 + "mmmmmmm..pggo..", -- 10 + "mmmmmmm..pggo..", -- 11 + "mmmmmmm..pggo..", -- 12 + "mmmmmmm..kkko..", -- 13 + "mmmmmmm........", -- 14 + "mmmmmmm........", -- 15 + + -- Level 8 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "...pnnnnnnno...", -- 3 + "...pgggggggo...", -- 4 + "...pkkkkkkpo...", -- 5 + "..........po...", -- 6 + "..........po...", -- 7 + "..........po...", -- 8 + "mmmmmmm...po...", -- 9 + "mmmmmmm...po...", -- 10 + "mmmmmmm...po...", -- 11 + "mmmmmmm...pk...", -- 12 + "mmmmmmm........", -- 13 + "mmmmmmm........", -- 14 + "mmmmmmm........", -- 15 + + }, + }, -- WoodenHouseL13x14 + + + + { + OriginData = + { + ExportName = "WoodenHouse7x5", + Name = "Plains 40", + GalleryName = "Plains", + GalleryIndex = "40", + ID = "91", + CreatorName = "xoft", + }, + Size = + { + x = 9, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 9, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = -1, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j: 53: 2", -- woodstairs + "k: 53: 7", -- woodstairs + "l: 50: 3", -- torch + "m: 19: 0", -- sponge + "n: 53: 6", -- woodstairs + "o: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmaaammm", -- 0 + "maaaaaaam", -- 1 + "maaaaaaam", -- 2 + "maaaaaaam", -- 3 + "maaaaaaam", -- 4 + "maaaaaaam", -- 5 + "mmmmmmmmm", -- 6 + + -- Level 1 + "...bcd...", -- 0 + ".aaaaaaa.", -- 1 + ".aaaaaaa.", -- 2 + ".aaaaaaa.", -- 3 + ".aaaaaaa.", -- 4 + ".aaaaaaa.", -- 5 + ".........", -- 6 + + -- Level 2 + ".........", -- 0 + ".effgffe.", -- 1 + ".f.....f.", -- 2 + ".f.....f.", -- 3 + ".f.....f.", -- 4 + ".efffffe.", -- 5 + ".........", -- 6 + + -- Level 3 + ".........", -- 0 + ".ehfifhe.", -- 1 + ".h.....h.", -- 2 + ".h.....h.", -- 3 + ".h.....h.", -- 4 + ".ehhfhhe.", -- 5 + ".........", -- 6 + + -- Level 4 + "jjjjjjjjj", -- 0 + "kefffffek", -- 1 + ".f.l.l.f.", -- 2 + ".f.....f.", -- 3 + ".f.....f.", -- 4 + "nefffffen", -- 5 + "ooooooooo", -- 6 + + -- Level 5 + ".........", -- 0 + "jjjjjjjjj", -- 1 + "kfffffffk", -- 2 + ".f.....f.", -- 3 + "nfffffffn", -- 4 + "ooooooooo", -- 5 + ".........", -- 6 + + -- Level 6 + ".........", -- 0 + ".........", -- 1 + "jjjjjjjjj", -- 2 + "fffffffff", -- 3 + "ooooooooo", -- 4 + ".........", -- 5 + ".........", -- 6 + + }, + }, -- WoodenHouse7x5 + + + + { + OriginData = + { + ExportName = "WoodenHouse9x5", + Name = "Plains 41", + GalleryName = "Plains", + GalleryIndex = "41", + ID = "92", + CreatorName = "xoft", + }, + Size = + { + x = 11, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 11, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = -1, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j: 53: 2", -- woodstairs + "k: 53: 7", -- woodstairs + "l: 50: 3", -- torch + "m: 19: 0", -- sponge + "n: 53: 6", -- woodstairs + "o: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "mmmmmmmmmmm", -- 6 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + "...........", -- 6 + + -- Level 2 + "...........", -- 0 + ".efffgfffe.", -- 1 + ".f.......f.", -- 2 + ".f.......f.", -- 3 + ".f.......f.", -- 4 + ".efffffffe.", -- 5 + "...........", -- 6 + + -- Level 3 + "...........", -- 0 + ".ehhfifhhe.", -- 1 + ".h.......h.", -- 2 + ".h.......h.", -- 3 + ".h.......h.", -- 4 + ".ehhhfhhhe.", -- 5 + "...........", -- 6 + + -- Level 4 + "jjjjjjjjjjj", -- 0 + "kfffffffffk", -- 1 + ".f..l.l.ff.", -- 2 + ".f......ff.", -- 3 + ".f......ff.", -- 4 + "nfffffffffn", -- 5 + "ooooooooooo", -- 6 + + -- Level 5 + "...........", -- 0 + "jjjjjjjjjjj", -- 1 + "kfffffffffk", -- 2 + ".fffffffff.", -- 3 + "nfffffffffn", -- 4 + "ooooooooooo", -- 5 + "...........", -- 6 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "jjjjjjjjjjj", -- 2 + "fffffffffff", -- 3 + "ooooooooooo", -- 4 + "...........", -- 5 + "...........", -- 6 + + }, + }, -- WoodenHouse9x5 + + + + { + OriginData = + { + ExportName = "WoodenHouseL9x9", + Name = "Plains 42", + GalleryName = "Plains", + GalleryIndex = "42", + ID = "93", + CreatorName = "xoft", + }, + Size = + { + x = 11, + y = 7, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 11, + MaxY = 6, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j: 53: 2", -- woodstairs + "k: 53: 7", -- woodstairs + "l: 53: 1", -- woodstairs + "m: 19: 0", -- sponge + "n: 50: 3", -- torch + "o: 50: 4", -- torch + "p: 53: 6", -- woodstairs + "q: 50: 1", -- torch + "r: 50: 2", -- torch + "s: 53: 3", -- woodstairs + "t: 53: 0", -- woodstairs + "u: 53: 5", -- woodstairs + "v: 53: 4", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "mmmmmaaaaam", -- 6 + "mmmmmaaaaam", -- 7 + "mmmmmaaaaam", -- 8 + "mmmmmaaaaam", -- 9 + "mmmmmmmmmmm", -- 10 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + ".....aaaaa.", -- 6 + "mmmm.aaaaa.", -- 7 + "mmmm.aaaaa.", -- 8 + "mmmm.aaaaa.", -- 9 + "mmmm.......", -- 10 + + -- Level 2 + "...........", -- 0 + ".efffgfffe.", -- 1 + ".f.......f.", -- 2 + ".f.......f.", -- 3 + ".f.......f.", -- 4 + ".efffe...f.", -- 5 + ".....f...f.", -- 6 + "mmmm.f...f.", -- 7 + "mmmm.f...f.", -- 8 + "mmmm.efffe.", -- 9 + "mmmm.......", -- 10 + + -- Level 3 + "...........", -- 0 + ".ehhfifhhe.", -- 1 + ".h.......h.", -- 2 + ".h.......h.", -- 3 + ".h.......h.", -- 4 + ".ehhhe...f.", -- 5 + ".....h...h.", -- 6 + "mmmm.h...h.", -- 7 + "mmmm.h...h.", -- 8 + "mmmm.ehhhe.", -- 9 + "mmmm.......", -- 10 + + -- Level 4 + "jjjjjjjjjjj", -- 0 + "kfffffffffl", -- 1 + ".f..n.n..fl", -- 2 + ".f.......fl", -- 3 + ".f...o...fl", -- 4 + "pfffffq.rfl", -- 5 + "sssssf...fl", -- 6 + "mmmmtf...fl", -- 7 + "mmmmtf...fl", -- 8 + "mmmmtfffffl", -- 9 + "mmmmtu...vl", -- 10 + + -- Level 5 + "...........", -- 0 + "jjjjjjjjjl.", -- 1 + "kffffffffl.", -- 2 + ".f......fl.", -- 3 + "pffffff.fl.", -- 4 + "ssssssf.fl.", -- 5 + ".....tf.fl.", -- 6 + "mmmm.tf.fl.", -- 7 + "mmmm.tf.fl.", -- 8 + "mmmm.tfffl.", -- 9 + "mmmm.tu.vl.", -- 10 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "jjjjjjjjj..", -- 2 + "ffffffffl..", -- 3 + "sssssstfl..", -- 4 + "......tfl..", -- 5 + "......tfl..", -- 6 + "mmmm..tfl..", -- 7 + "mmmm..tfl..", -- 8 + "mmmm..tfl..", -- 9 + "mmmm..tfl..", -- 10 + + }, + }, -- WoodenHouseL9x9 + + + + { + OriginData = + { + ExportName = "WoodenHouseU13x9", + Name = "Plains 43", + GalleryName = "Plains", + GalleryIndex = "43", + ID = "94", + CreatorName = "xoft", + }, + Size = + { + x = 15, + y = 7, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 15, + MaxY = 6, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j: 53: 2", -- woodstairs + "k: 53: 0", -- woodstairs + "l: 53: 1", -- woodstairs + "m: 19: 0", -- sponge + "n: 50: 3", -- torch + "o: 50: 4", -- torch + "p: 50: 2", -- torch + "q: 50: 1", -- torch + "r: 53: 3", -- woodstairs + "s: 53: 5", -- woodstairs + "t: 53: 4", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmmmaaammmmmm", -- 0 + "maaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaam", -- 5 + "maaaaammmaaaaam", -- 6 + "maaaaammmaaaaam", -- 7 + "maaaaammmaaaaam", -- 8 + "maaaaammmaaaaam", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + + -- Level 1 + "......bcd......", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaaa.", -- 5 + ".aaaaa...aaaaa.", -- 6 + ".aaaaa...aaaaa.", -- 7 + ".aaaaa...aaaaa.", -- 8 + ".aaaaa...aaaaa.", -- 9 + "...............", -- 10 + + -- Level 2 + "...............", -- 0 + ".efffffgfffffe.", -- 1 + ".f...........f.", -- 2 + ".f...........f.", -- 3 + ".f...........f.", -- 4 + ".f...efffe...f.", -- 5 + ".f...f...f...f.", -- 6 + ".f...f...f...f.", -- 7 + ".f...f...f...f.", -- 8 + ".efffe...efffe.", -- 9 + "...............", -- 10 + + -- Level 3 + "...............", -- 0 + ".ehhhhfifhhhhe.", -- 1 + ".h...........h.", -- 2 + ".h...........h.", -- 3 + ".h...........h.", -- 4 + ".f...ehhhe...f.", -- 5 + ".h...h...h...h.", -- 6 + ".h...h...h...h.", -- 7 + ".h...h...h...h.", -- 8 + ".ehhhe...ehhhe.", -- 9 + "...............", -- 10 + + -- Level 4 + "jjjjjjjjjjjjjjj", -- 0 + "kfffffffffffffl", -- 1 + "kf....n.n....fl", -- 2 + "kf...........fl", -- 3 + "kf...o...o...fl", -- 4 + "kf..pfffffq..fl", -- 5 + "kf...frrrf...fl", -- 6 + "kf...fl.kf...fl", -- 7 + "kf...fl.kf...fl", -- 8 + "kfffffl.kfffffl", -- 9 + "ks...tl.ks...tl", -- 10 + + -- Level 5 + "...............", -- 0 + ".jjjjjjjjjjjjl.", -- 1 + ".kfffffffffffl.", -- 2 + ".kfffffffffffl.", -- 3 + ".kfffffffffffl.", -- 4 + ".kffflrrrrfffl.", -- 5 + ".kfffl...kfffl.", -- 6 + ".kfffl...kfffl.", -- 7 + ".kfffl...kfffl.", -- 8 + ".kfffl...kfffl.", -- 9 + ".ks.tl...ks.tl.", -- 10 + + -- Level 6 + "...............", -- 0 + "...............", -- 1 + "..kjjjjjjjjjj..", -- 2 + "..kfffffffffl..", -- 3 + "..kflrrrrrkfl..", -- 4 + "..kfl.....kfl..", -- 5 + "..kfl.....kfl..", -- 6 + "..kfl.....kfl..", -- 7 + "..kfl.....kfl..", -- 8 + "..kfl.....kfl..", -- 9 + "..kfl.....kfl..", -- 10 + + }, + }, -- WoodenHouseU13x9 + + + + { + OriginData = + { + ExportName = "WoodenHouse9x5Library", + Name = "Plains 46", + GalleryName = "Plains", + GalleryIndex = "46", + ID = "97", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 11, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h: 53: 3", -- woodstairs + "i: 85: 0", -- fence + "j: 53: 2", -- woodstairs + "k: 53: 1", -- woodstairs + "l: 53: 0", -- woodstairs + "m: 19: 0", -- sponge + "n:102: 0", -- glasspane + "o: 64: 9", -- wooddoorblock + "p: 50: 3", -- torch + "q: 72: 0", -- woodplate + "r: 53: 7", -- woodstairs + "s: 47: 0", -- bookshelf + "t: 50: 1", -- torch + "u: 50: 2", -- torch + "v: 53: 6", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "mmmmmmmmmmm", -- 6 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + "...........", -- 6 + + -- Level 2 + "...........", -- 0 + ".efffgfffe.", -- 1 + ".fh.....hf.", -- 2 + ".fi.....if.", -- 3 + ".fj.kil.jf.", -- 4 + ".efffffffe.", -- 5 + "...........", -- 6 + + -- Level 3 + "...........", -- 0 + ".ennfofnne.", -- 1 + ".n..p.p..n.", -- 2 + ".nq.....qn.", -- 3 + ".n...q...n.", -- 4 + ".ennnfnnne.", -- 5 + "...........", -- 6 + + -- Level 4 + "jjjjjjjjjjj", -- 0 + "rfffffffffr", -- 1 + ".fsssssssf.", -- 2 + ".ft.....uf.", -- 3 + ".fsssssssf.", -- 4 + "vfffffffffv", -- 5 + "hhhhhhhhhhh", -- 6 + + -- Level 5 + "...........", -- 0 + "jjjjjjjjjjj", -- 1 + "rfffffffffr", -- 2 + ".f.......f.", -- 3 + "vfffffffffv", -- 4 + "hhhhhhhhhhh", -- 5 + "...........", -- 6 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "jjjjjjjjjjj", -- 2 + "fffffffffff", -- 3 + "hhhhhhhhhhh", -- 4 + "...........", -- 5 + "...........", -- 6 + + }, + }, -- WoodenHouse9x5Library + + + + { + OriginData = + { + ExportName = "WoodenHouse10x7Library", + Name = "Plains 47", + GalleryName = "Plains", + GalleryIndex = "47", + ID = "98", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 12, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 12, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h: 53: 3", -- woodstairs + "i: 85: 0", -- fence + "j: 53: 2", -- woodstairs + "k: 53: 1", -- woodstairs + "l: 53: 0", -- woodstairs + "m: 19: 0", -- sponge + "n:102: 0", -- glasspane + "o: 64: 8", -- wooddoorblock + "p: 64: 9", -- wooddoorblock + "q: 50: 3", -- torch + "r: 72: 0", -- woodplate + "s: 53: 7", -- woodstairs + "t: 47: 0", -- bookshelf + "u: 50: 1", -- torch + "v: 50: 2", -- torch + "w: 53: 6", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaaammmm", -- 0 + "maaaaaaaaaam", -- 1 + "maaaaaaaaaam", -- 2 + "maaaaaaaaaam", -- 3 + "maaaaaaaaaam", -- 4 + "maaaaaaaaaam", -- 5 + "maaaaaaaaaam", -- 6 + "maaaaaaaaaam", -- 7 + "mmmmmmmmmmmm", -- 8 + + -- Level 1 + "....bccd....", -- 0 + ".aaaaaaaaaa.", -- 1 + ".aaaaaaaaaa.", -- 2 + ".aaaaaaaaaa.", -- 3 + ".aaaaaaaaaa.", -- 4 + ".aaaaaaaaaa.", -- 5 + ".aaaaaaaaaa.", -- 6 + ".aaaaaaaaaa.", -- 7 + "............", -- 8 + + -- Level 2 + "............", -- 0 + ".efffggfffe.", -- 1 + ".f........f.", -- 2 + ".fh......hf.", -- 3 + ".fi......if.", -- 4 + ".fj......jf.", -- 5 + ".f.kilkil.f.", -- 6 + ".effffffffe.", -- 7 + "............", -- 8 + + -- Level 3 + "............", -- 0 + ".ennfopfnne.", -- 1 + ".n..q..q..n.", -- 2 + ".n........n.", -- 3 + ".fr......rf.", -- 4 + ".n........n.", -- 5 + ".n..r..r..n.", -- 6 + ".ennfnnfnne.", -- 7 + "............", -- 8 + + -- Level 4 + "jjjjjjjjjjjj", -- 0 + "sffffffffffs", -- 1 + ".fttttttttf.", -- 2 + ".f........f.", -- 3 + ".fu......vf.", -- 4 + ".f........f.", -- 5 + ".fttttttttf.", -- 6 + "wffffffffffw", -- 7 + "hhhhhhhhhhhh", -- 8 + + -- Level 5 + "............", -- 0 + "jjjjjjjjjjjj", -- 1 + "sffffffffffs", -- 2 + ".fttttttttf.", -- 3 + ".f........f.", -- 4 + ".fttttttttf.", -- 5 + "wffffffffffw", -- 6 + "hhhhhhhhhhhh", -- 7 + "............", -- 8 + + -- Level 6 + "............", -- 0 + "............", -- 1 + "jjjjjjjjjjjj", -- 2 + "sffffffffffs", -- 3 + ".f........f.", -- 4 + "wffffffffffw", -- 5 + "hhhhhhhhhhhh", -- 6 + "............", -- 7 + "............", -- 8 + + -- Level 7 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "jjjjjjjjjjjj", -- 3 + "ffffffffffff", -- 4 + "hhhhhhhhhhhh", -- 5 + "............", -- 6 + "............", -- 7 + "............", -- 8 + + }, + }, -- WoodenHouse10x7Library + + + + { + OriginData = + { + ExportName = "WoodenHouse9x7Butcher", + Name = "Plains 48", + GalleryName = "Plains", + GalleryIndex = "48", + ID = "99", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 8, + z = 13, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 7, + MaxZ = 13, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 3: 0", -- dirt + "c: 67: 0", -- stairs + "d: 67: 2", -- stairs + "e: 67: 1", -- stairs + "f: 43: 0", -- doublestep + "g: 2: 0", -- grass + "h: 17: 0", -- tree + "i: 5: 0", -- planks + "j: 64: 3", -- wooddoorblock + "k: 53: 3", -- woodstairs + "l: 85: 0", -- fence + "m: 19: 0", -- sponge + "n: 53: 2", -- woodstairs + "o: 64: 1", -- wooddoorblock + "p:102: 0", -- glasspane + "q: 64: 9", -- wooddoorblock + "r: 72: 0", -- woodplate + "s: 53: 7", -- woodstairs + "t: 50: 1", -- torch + "u: 50: 2", -- torch + "v: 53: 6", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "mmbbbbbbbmm", -- 8 + "mmbbbbbbbmm", -- 9 + "mmbbbbbbbmm", -- 10 + "mmbbbbbbbmm", -- 11 + "mmbbbbbbbmm", -- 12 + + -- Level 1 + "....cde....", -- 0 + ".aaaaaaaaa.", -- 1 + ".affffaaaa.", -- 2 + ".affffaaaa.", -- 3 + ".affffaaaa.", -- 4 + ".affffaaaa.", -- 5 + ".affffaaaa.", -- 6 + ".aaaaaaaaa.", -- 7 + "..ggggggg..", -- 8 + "mmgggggggmm", -- 9 + "mmgggggggmm", -- 10 + "mmgggggggmm", -- 11 + "mmgggggggmm", -- 12 + + -- Level 2 + "...........", -- 0 + ".hiiijiiih.", -- 1 + ".i.f....ki.", -- 2 + ".i.f....li.", -- 3 + ".i.f....ni.", -- 4 + ".i.......i.", -- 5 + ".i.......i.", -- 6 + ".hiiioiiih.", -- 7 + "..l.....l..", -- 8 + "mml.....lmm", -- 9 + "mml.....lmm", -- 10 + "mml.....lmm", -- 11 + "mmlllllllmm", -- 12 + + -- Level 3 + "...........", -- 0 + ".hppiqipph.", -- 1 + ".p.......p.", -- 2 + ".p......rp.", -- 3 + ".i.......i.", -- 4 + ".p.......p.", -- 5 + ".p.......p.", -- 6 + ".hppiqipph.", -- 7 + "...........", -- 8 + "mm.......mm", -- 9 + "mm.......mm", -- 10 + "mm.......mm", -- 11 + "mm.......mm", -- 12 + + -- Level 4 + "nnnnnnnnnnn", -- 0 + "siiiiiiiiis", -- 1 + ".i.......i.", -- 2 + ".i.......i.", -- 3 + ".it.....ui.", -- 4 + ".i.......i.", -- 5 + ".i.......i.", -- 6 + "viiiiiiiiiv", -- 7 + "kkkkkkkkkkk", -- 8 + "mm.......mm", -- 9 + "mm.......mm", -- 10 + "mm.......mm", -- 11 + "mm.......mm", -- 12 + + -- Level 5 + "...........", -- 0 + "nnnnnnnnnnn", -- 1 + "siiiiiiiiis", -- 2 + ".i.......i.", -- 3 + ".i.......i.", -- 4 + ".i.......i.", -- 5 + "viiiiiiiiiv", -- 6 + "kkkkkkkkkkk", -- 7 + "...........", -- 8 + "mm.......mm", -- 9 + "mm.......mm", -- 10 + "mm.......mm", -- 11 + "mm.......mm", -- 12 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "nnnnnnnnnnn", -- 2 + "siiiiiiiiis", -- 3 + ".i.......i.", -- 4 + "viiiiiiiiiv", -- 5 + "kkkkkkkkkkk", -- 6 + "...........", -- 7 + "...........", -- 8 + "mm.......mm", -- 9 + "mm.......mm", -- 10 + "mm.......mm", -- 11 + "mm.......mm", -- 12 + + -- Level 7 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "nnnnnnnnnnn", -- 3 + "iiiiiiiiiii", -- 4 + "kkkkkkkkkkk", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + "mm.......mm", -- 9 + "mm.......mm", -- 10 + "mm.......mm", -- 11 + "mm.......mm", -- 12 + + }, + }, -- WoodenHouse9x7Butcher + + + + { + OriginData = + { + ExportName = "WoodenHouse5x5", + Name = "Plains 49", + GalleryName = "Plains", + GalleryIndex = "49", + ID = "100", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 7, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h: 64: 9", -- wooddoorblock + "i:102: 0", -- glasspane + "j: 53: 2", -- woodstairs + "k: 53: 7", -- woodstairs + "l: 50: 3", -- torch + "m: 19: 0", -- sponge + "n: 53: 6", -- woodstairs + "o: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmaaamm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + "..bcd..", -- 0 + ".aaaaa.", -- 1 + ".aaaaa.", -- 2 + ".aaaaa.", -- 3 + ".aaaaa.", -- 4 + ".aaaaa.", -- 5 + ".......", -- 6 + + -- Level 2 + ".......", -- 0 + ".efgfe.", -- 1 + ".f...f.", -- 2 + ".f...f.", -- 3 + ".f...f.", -- 4 + ".efffe.", -- 5 + ".......", -- 6 + + -- Level 3 + ".......", -- 0 + ".efhfe.", -- 1 + ".i...i.", -- 2 + ".i...i.", -- 3 + ".i...i.", -- 4 + ".eiiie.", -- 5 + ".......", -- 6 + + -- Level 4 + "jjjjjjj", -- 0 + "kfffffk", -- 1 + ".fl.lf.", -- 2 + ".f...f.", -- 3 + ".f...f.", -- 4 + "nfffffn", -- 5 + "ooooooo", -- 6 + + -- Level 5 + ".......", -- 0 + "jjjjjjj", -- 1 + "kfffffk", -- 2 + ".f...f.", -- 3 + "nfffffn", -- 4 + "ooooooo", -- 5 + ".......", -- 6 + + -- Level 6 + ".......", -- 0 + ".......", -- 1 + "jjjjjjj", -- 2 + "fffffff", -- 3 + "ooooooo", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- WoodenHouse5x5 + + + + { + OriginData = + { + ExportName = "Forge", + Name = "Plains 51", + GalleryName = "Plains", + GalleryIndex = "51", + ID = "102", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 12, + y = 9, + z = 11, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 12, + MaxY = 8, + MaxZ = 11, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 0", -- wooddoorblock + "h: 10: 0", -- lava + "i: 54: 2", -- chest + "j: 61: 2", -- furnace + "k:102: 0", -- glasspane + "l: 64: 9", -- wooddoorblock + "m: 19: 0", -- sponge + "n:139: 0", -- cobblestonewall + "o:101: 0", -- ironbars + "p: 53: 2", -- woodstairs + "q: 53: 7", -- woodstairs + "r: 50: 2", -- torch + "s: 50: 1", -- torch + "t: 53: 6", -- woodstairs + "u: 53: 3", -- woodstairs + "v: 43: 0", -- doublestep + "w: 44: 0", -- step + }, + BlockData = + { + -- Level 0 + "mmmmmaaaaamm", -- 0 + "maaaaaaaaamm", -- 1 + "maaaaaaaaamm", -- 2 + "maaaaaaaaaaa", -- 3 + "maaaaaaaaaaa", -- 4 + "maaaaaaaaaaa", -- 5 + "maaaaaaaaaaa", -- 6 + "maaaaaaaaaaa", -- 7 + "maaaaammmmmm", -- 8 + "maaaaammmmmm", -- 9 + "mmmmmmmmmmmm", -- 10 + + -- Level 1 + ".....bcccd..", -- 0 + ".aaaaaaaad..", -- 1 + ".aaaaaaaad..", -- 2 + ".aaaaaaaaaaa", -- 3 + ".aaaaaaaaaaa", -- 4 + ".aaaaaaaaaaa", -- 5 + ".aaaaaaaaaaa", -- 6 + ".aaaaaaaaaaa", -- 7 + ".aaaaa......", -- 8 + ".aaaaa......", -- 9 + "............", -- 10 + + -- Level 2 + "............", -- 0 + ".efffe......", -- 1 + ".f...g......", -- 2 + ".f...ea..aaa", -- 3 + ".f...f...aha", -- 4 + ".f...f...aha", -- 5 + ".f...fijjaha", -- 6 + ".f...eaaaaaa", -- 7 + ".f...f......", -- 8 + ".efffe......", -- 9 + "............", -- 10 + + -- Level 3 + "............", -- 0 + ".ekkke......", -- 1 + ".k...l......", -- 2 + ".k...en..n.a", -- 3 + ".k...k.....o", -- 4 + ".f...k.....o", -- 5 + ".k...k.....o", -- 6 + ".k...eaooooa", -- 7 + ".k...f......", -- 8 + ".ekkke......", -- 9 + "............", -- 10 + + -- Level 4 + "ppppppp.....", -- 0 + "qfffffq.....", -- 1 + ".f...f......", -- 2 + ".f..rfa..aoa", -- 3 + ".f...f...o.a", -- 4 + ".f...f...o.a", -- 5 + ".fs..f...o.a", -- 6 + ".f...faaaaaa", -- 7 + ".f...f......", -- 8 + "tffffft.....", -- 9 + "uuuuuuu.....", -- 10 + + -- Level 5 + "............", -- 0 + "ppppppp.....", -- 1 + "qfffffq.....", -- 2 + ".f...fvvvvvv", -- 3 + ".f...fvwwwwv", -- 4 + ".f...fvwwwwv", -- 5 + ".f...fvwwwwv", -- 6 + ".f...fvvvvvv", -- 7 + "tffffft.....", -- 8 + "uuuuuuu.....", -- 9 + "............", -- 10 + + -- Level 6 + "............", -- 0 + "............", -- 1 + "ppppppp.....", -- 2 + "qfffffq.....", -- 3 + ".f...f......", -- 4 + ".f...f......", -- 5 + ".f...f......", -- 6 + "tffffft.....", -- 7 + "uuuuuuu.....", -- 8 + "............", -- 9 + "............", -- 10 + + -- Level 7 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "ppppppp.....", -- 3 + "qfffffq.....", -- 4 + ".f...f......", -- 5 + "tffffft.....", -- 6 + "uuuuuuu.....", -- 7 + "............", -- 8 + "............", -- 9 + "............", -- 10 + + -- Level 8 + "............", -- 0 + "............", -- 1 + "............", -- 2 + "............", -- 3 + "ppppppp.....", -- 4 + "fffffff.....", -- 5 + "uuuuuuu.....", -- 6 + "............", -- 7 + "............", -- 8 + "............", -- 9 + "............", -- 10 + + }, + }, -- Forge + + + + { + OriginData = + { + ExportName = "WoodenHouse9x7", + Name = "Plains 52", + GalleryName = "Plains", + GalleryIndex = "52", + ID = "103", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 11, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 3", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j: 53: 2", -- woodstairs + "k: 53: 7", -- woodstairs + "l: 50: 3", -- torch + "m: 19: 0", -- sponge + "n: 50: 4", -- torch + "o: 53: 6", -- woodstairs + "p: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "mmmmmmmmmmm", -- 8 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + ".aaaaaaaaa.", -- 6 + ".aaaaaaaaa.", -- 7 + "...........", -- 8 + + -- Level 2 + "...........", -- 0 + ".efffgfffe.", -- 1 + ".f.......f.", -- 2 + ".f.......f.", -- 3 + ".f.......f.", -- 4 + ".f.......f.", -- 5 + ".f.......f.", -- 6 + ".efffffffe.", -- 7 + "...........", -- 8 + + -- Level 3 + "...........", -- 0 + ".ehhfifhhe.", -- 1 + ".h.......h.", -- 2 + ".h.......h.", -- 3 + ".f.......f.", -- 4 + ".h.......h.", -- 5 + ".h.......h.", -- 6 + ".ehhhfhhhe.", -- 7 + "...........", -- 8 + + -- Level 4 + "jjjjjjjjjjj", -- 0 + "kfffffffffk", -- 1 + ".f..l.l..f.", -- 2 + ".f.......f.", -- 3 + ".f.......f.", -- 4 + ".f.......f.", -- 5 + ".f...n...f.", -- 6 + "offfffffffo", -- 7 + "ppppppppppp", -- 8 + + -- Level 5 + "...........", -- 0 + "jjjjjjjjjjj", -- 1 + "kfffffffffk", -- 2 + ".f.......f.", -- 3 + ".f.......f.", -- 4 + ".f.......f.", -- 5 + "offfffffffo", -- 6 + "ppppppppppp", -- 7 + "...........", -- 8 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "jjjjjjjjjjj", -- 2 + "kfffffffffk", -- 3 + ".f.......f.", -- 4 + "offfffffffo", -- 5 + "ppppppppppp", -- 6 + "...........", -- 7 + "...........", -- 8 + + -- Level 7 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "jjjjjjjjjjj", -- 3 + "fffffffffff", -- 4 + "ppppppppppp", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + + }, + }, -- WoodenHouse9x7 + + + + { + OriginData = + { + ExportName = "WoodenGranary", + Name = "Plains 54", + GalleryName = "Plains", + GalleryIndex = "54", + ID = "105", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 7, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 7, + MaxY = 6, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = -1, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "20", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b:170: 0", -- haybale + "c: 67: 0", -- stairs + "d: 67: 2", -- stairs + "e: 67: 1", -- stairs + "f: 17: 0", -- tree + "g: 5: 0", -- planks + "h:170: 4", -- haybale + "i:170: 8", -- haybale + "j: 54: 2", -- chest + "k: 50: 4", -- torch + "l: 53: 0", -- woodstairs + "m: 19: 0", -- sponge + "n: 53: 5", -- woodstairs + "o: 53: 4", -- woodstairs + "p: 53: 1", -- woodstairs + }, + BlockData = + { + -- Level 0 + "maaaaam", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "maaaaam", -- 6 + "maaaaam", -- 7 + "mmmmmmm", -- 8 + + -- Level 1 + "bcddde.", -- 0 + ".aaaaa.", -- 1 + ".aaaaa.", -- 2 + ".aaaaa.", -- 3 + ".aaaaa.", -- 4 + ".aaaaa.", -- 5 + ".aaaaa.", -- 6 + ".aaaaa.", -- 7 + ".......", -- 8 + + -- Level 2 + ".......", -- 0 + ".f..bf.", -- 1 + ".g...g.", -- 2 + ".gb.hg.", -- 3 + ".fihif.", -- 4 + ".gbbbg.", -- 5 + ".gijbg.", -- 6 + ".fgfgf.", -- 7 + ".......", -- 8 + + -- Level 3 + ".k...k.", -- 0 + ".f...f.", -- 1 + ".g...g.", -- 2 + ".g...g.", -- 3 + ".fh..f.", -- 4 + ".ghibg.", -- 5 + ".ghiig.", -- 6 + ".fgfgf.", -- 7 + ".......", -- 8 + + -- Level 4 + "ln...op", -- 0 + "lgggggp", -- 1 + "lg...gp", -- 2 + "lg...gp", -- 3 + "lg...gp", -- 4 + "lgbb.gp", -- 5 + "lgibigp", -- 6 + "lgggggp", -- 7 + "ln...op", -- 8 + + -- Level 5 + ".ln.op.", -- 0 + ".lgggp.", -- 1 + ".lg.gp.", -- 2 + ".lg.gp.", -- 3 + ".lg.gp.", -- 4 + ".lg.gp.", -- 5 + ".lg.gp.", -- 6 + ".lgggp.", -- 7 + ".ln.op.", -- 8 + + -- Level 6 + "..lgp..", -- 0 + "..lgp..", -- 1 + "..lgp..", -- 2 + "..lgp..", -- 3 + "..lgp..", -- 4 + "..lgp..", -- 5 + "..lgp..", -- 6 + "..lgp..", -- 7 + "..lgp..", -- 8 + + }, + }, -- WoodenGranary + + + + { + OriginData = + { + ExportName = "WoodenStables", + Name = "Plains 55", + GalleryName = "Plains", + GalleryIndex = "55", + ID = "106", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 15, + y = 9, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 15, + MaxY = 8, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 1, + RelZ = -1, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 3: 0", -- dirt + "f: 17: 0", -- tree + "g:107: 0", -- fencegate + "h:107: 4", -- fencegate + "i: 5: 0", -- planks + "j:107: 6", -- fencegate + "k: 85: 0", -- fence + "l:170: 0", -- haybale + "m: 19: 0", -- sponge + "n:170: 4", -- haybale + "o:170: 8", -- haybale + "p: 50: 1", -- torch + "q: 50: 2", -- torch + "r: 53: 2", -- woodstairs + "s: 53: 7", -- woodstairs + "t: 53: 6", -- woodstairs + "u: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "maaaaaaaaaaaaam", -- 0 + "maaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaaam", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + + -- Level 1 + ".bcccccccccccd.", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".aeeeeeeeeeeea.", -- 2 + ".aeeeeeeeeeeea.", -- 3 + ".aeeeeeeeeeeea.", -- 4 + ".aeeeeeeeeeeea.", -- 5 + ".aeeeeeeeeeeea.", -- 6 + ".aaaaaaaaaaaaa.", -- 7 + "...............", -- 8 + + -- Level 2 + "...............", -- 0 + ".fghgighgigjgf.", -- 1 + ".k...k...k...k.", -- 2 + ".k...k...k...k.", -- 3 + ".k...k...k...k.", -- 4 + ".k...k...k...k.", -- 5 + ".kl..k..nko..k.", -- 6 + ".fkkkikkkikkkf.", -- 7 + "...............", -- 8 + + -- Level 3 + "...............", -- 0 + ".f...i...i...f.", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + ".f...i...i...f.", -- 7 + "...............", -- 8 + + -- Level 4 + "...............", -- 0 + ".fp.qip.qip.qf.", -- 1 + "...............", -- 2 + "...............", -- 3 + "...............", -- 4 + "...............", -- 5 + "...............", -- 6 + ".f...i...i...f.", -- 7 + "...............", -- 8 + + -- Level 5 + "rrrrrrrrrrrrrrr", -- 0 + "siiiiiiiiiiiiis", -- 1 + ".i...........i.", -- 2 + ".i...........i.", -- 3 + ".i...........i.", -- 4 + ".i...........i.", -- 5 + ".i...........i.", -- 6 + "tiiiiiiiiiiiiit", -- 7 + "uuuuuuuuuuuuuuu", -- 8 + + -- Level 6 + "...............", -- 0 + "rrrrrrrrrrrrrrr", -- 1 + "siiiiiiiiiiiiis", -- 2 + ".i...........i.", -- 3 + ".i...........i.", -- 4 + ".i...........i.", -- 5 + "tiiiiiiiiiiiiit", -- 6 + "uuuuuuuuuuuuuuu", -- 7 + "...............", -- 8 + + -- Level 7 + "...............", -- 0 + "...............", -- 1 + "rrrrrrrrrrrrrrr", -- 2 + "siiiiiiiiiiiiis", -- 3 + ".i...........i.", -- 4 + "tiiiiiiiiiiiiit", -- 5 + "uuuuuuuuuuuuuuu", -- 6 + "...............", -- 7 + "...............", -- 8 + + -- Level 8 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "rrrrrrrrrrrrrrr", -- 3 + "iiiiiiiiiiiiiii", -- 4 + "uuuuuuuuuuuuuuu", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + + }, + }, -- WoodenStables + + + + { + OriginData = + { + ExportName = "WoodenChurchMid", + Name = "Plains 58", + GalleryName = "Plains", + GalleryIndex = "58", + ID = "109", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 15, + z = 13, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 14, + MaxZ = 13, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "20", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "A: 85: 0", -- fence + "B:126: 8", -- woodenslab + "a: 4: 0", -- cobblestone + "b: 67: 0", -- stairs + "c: 67: 2", -- stairs + "d: 67: 1", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 64: 1", -- wooddoorblock + "h: 65: 3", -- ladder + "i: 53: 3", -- woodstairs + "j: 53: 7", -- woodstairs + "k: 64: 9", -- wooddoorblock + "l:102: 0", -- glasspane + "m: 19: 0", -- sponge + "n: 50: 1", -- torch + "o: 50: 2", -- torch + "p:171:14", -- carpet + "q: 50: 3", -- torch + "r: 53: 2", -- woodstairs + "s: 53: 0", -- woodstairs + "t: 53: 1", -- woodstairs + "u: 53: 5", -- woodstairs + "v: 53: 4", -- woodstairs + "w: 17: 4", -- tree + "x: 17: 8", -- tree + "y: 54: 2", -- chest + "z: 50: 4", -- torch + }, + BlockData = + { + -- Level 0 + "mmaaamm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "maaaaam", -- 6 + "maaaaam", -- 7 + "maaaaam", -- 8 + "maaaaam", -- 9 + "maaaaam", -- 10 + "maaaaam", -- 11 + "mmmmmmm", -- 12 + + -- Level 1 + "..bcd..", -- 0 + ".aaaaa.", -- 1 + ".aaaaa.", -- 2 + ".aaaaa.", -- 3 + ".aaaaa.", -- 4 + ".aaaaa.", -- 5 + ".aaaaa.", -- 6 + ".aaaaa.", -- 7 + ".aaaaa.", -- 8 + ".aaaaa.", -- 9 + ".aaaaa.", -- 10 + ".aaaaa.", -- 11 + ".......", -- 12 + + -- Level 2 + ".......", -- 0 + ".efgfe.", -- 1 + ".f..hf.", -- 2 + ".f...f.", -- 3 + ".f...f.", -- 4 + ".ei.ie.", -- 5 + ".f...f.", -- 6 + ".fi.if.", -- 7 + ".f...f.", -- 8 + ".f.j.f.", -- 9 + ".f...f.", -- 10 + ".efffe.", -- 11 + ".......", -- 12 + + -- Level 3 + ".......", -- 0 + ".efkfe.", -- 1 + ".l..hl.", -- 2 + ".l...l.", -- 3 + ".l...l.", -- 4 + ".e...e.", -- 5 + ".l...l.", -- 6 + ".l...l.", -- 7 + ".fn.of.", -- 8 + ".l.p.l.", -- 9 + ".l...l.", -- 10 + ".ellle.", -- 11 + ".......", -- 12 + + -- Level 4 + ".......", -- 0 + ".efffe.", -- 1 + ".f.qhf.", -- 2 + ".f...f.", -- 3 + ".f...f.", -- 4 + "re...er", -- 5 + "sf...ft", -- 6 + "sf...ft", -- 7 + "sf...ft", -- 8 + "sf...ft", -- 9 + "sf...ft", -- 10 + "sefffet", -- 11 + "su...vt", -- 12 + + -- Level 5 + ".......", -- 0 + ".ewwwe.", -- 1 + ".xffhx.", -- 2 + ".xfffx.", -- 3 + ".xfffx.", -- 4 + ".ewwwe.", -- 5 + ".sf.ft.", -- 6 + ".sf.ft.", -- 7 + ".sf.ft.", -- 8 + ".sf.ft.", -- 9 + ".sf.ft.", -- 10 + ".sffft.", -- 11 + ".su.vt.", -- 12 + + -- Level 6 + ".......", -- 0 + ".eflfe.", -- 1 + ".f..hf.", -- 2 + ".f...f.", -- 3 + ".f.y.f.", -- 4 + ".efffe.", -- 5 + "..sft..", -- 6 + "..sft..", -- 7 + "..sft..", -- 8 + "..sft..", -- 9 + "..sft..", -- 10 + "..sft..", -- 11 + "..sft..", -- 12 + + -- Level 7 + ".......", -- 0 + ".eflfe.", -- 1 + ".f..hf.", -- 2 + ".l...l.", -- 3 + ".f...f.", -- 4 + ".efffe.", -- 5 + ".......", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 8 + ".......", -- 0 + ".eflfe.", -- 1 + ".f..hf.", -- 2 + ".f...f.", -- 3 + ".f.z.f.", -- 4 + ".efffe.", -- 5 + ".......", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 9 + ".......", -- 0 + ".ewwwe.", -- 1 + ".xffhx.", -- 2 + ".xfffx.", -- 3 + ".xfffx.", -- 4 + ".ewwwe.", -- 5 + ".......", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 10 + ".......", -- 0 + ".eAAAe.", -- 1 + ".A...A.", -- 2 + ".A...A.", -- 3 + ".A...A.", -- 4 + ".eAAAe.", -- 5 + ".......", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 11 + ".......", -- 0 + ".e...e.", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + ".e...e.", -- 5 + ".......", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 12 + "su...vt", -- 0 + "sefffet", -- 1 + "sfBBBft", -- 2 + "sfBBBft", -- 3 + "sfBBBft", -- 4 + "sefffet", -- 5 + "su...vt", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 13 + ".su.vt.", -- 0 + ".sffft.", -- 1 + ".sffft.", -- 2 + ".sffft.", -- 3 + ".sffft.", -- 4 + ".sffft.", -- 5 + ".su.vt.", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + -- Level 14 + "..sft..", -- 0 + "..sft..", -- 1 + "..sft..", -- 2 + "..sft..", -- 3 + "..sft..", -- 4 + "..sft..", -- 5 + "..sft..", -- 6 + ".......", -- 7 + ".......", -- 8 + ".......", -- 9 + ".......", -- 10 + ".......", -- 11 + ".......", -- 12 + + }, + }, -- WoodenChurchMid + + + + { + OriginData = + { + ExportName = "WoodenMill5x5", + Name = "Plains 60", + GalleryName = "Plains", + GalleryIndex = "60", + ID = "111", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 9, + y = 17, + z = 13, + }, + Hitbox = + { + MinX = -1, + MinY = -1, + MinZ = 0, + MaxX = 8, + MaxY = 16, + MaxZ = 12, + }, + Connectors = + { + { + Type = -1, + RelX = 8, + RelY = 1, + RelZ = 6, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 4: 0", -- cobblestone + "b: 67: 2", -- stairs + "c: 67: 1", -- stairs + "d: 67: 3", -- stairs + "e: 17: 0", -- tree + "f: 5: 0", -- planks + "g: 54: 4", -- chest + "h:154: 4", -- hopper + "i: 64: 0", -- wooddoorblock + "j:102: 0", -- glasspane + "k: 85: 0", -- fence + "l: 64: 9", -- wooddoorblock + "m: 19: 0", -- sponge + "n: 50: 2", -- torch + "o: 35: 0", -- wool + "p: 17: 4", -- tree + "q: 17: 8", -- tree + "r: 53: 2", -- woodstairs + "s: 53: 7", -- woodstairs + "t: 53: 6", -- woodstairs + "u: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "mmmmmmmmm", -- 0 + "mmmmmmmmm", -- 1 + "mmmmmmmmm", -- 2 + "mmmmmmmmm", -- 3 + "maaaaammm", -- 4 + "maaaaaamm", -- 5 + "maaaaaamm", -- 6 + "maaaaaamm", -- 7 + "maaaaammm", -- 8 + "mmmmmmmmm", -- 9 + "mmmmmmmmm", -- 10 + "mmmmmmmmm", -- 11 + "mmmmmmmmm", -- 12 + + -- Level 1 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".aaaaa...", -- 4 + ".aaaaab..", -- 5 + ".aaaaac..", -- 6 + ".aaaaad..", -- 7 + ".aaaaa...", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 2 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".efffe...", -- 4 + ".f...f...", -- 5 + ".fgh.i...", -- 6 + ".f...f...", -- 7 + ".efffe...", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 3 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".ejjje...", -- 4 + ".j...f...", -- 5 + ".j.k.l...", -- 6 + ".j...f...", -- 7 + ".ejjje...", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 4 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".efffe...", -- 4 + ".f..nf...", -- 5 + ".f.k.f...", -- 6 + ".f..nf..k", -- 7 + ".efffe..o", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 5 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".epppe...", -- 4 + ".q...q...", -- 5 + ".q.k.q...", -- 6 + ".q...q..k", -- 7 + ".epppe..o", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 6 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".efffe...", -- 4 + ".f...f...", -- 5 + ".f.k.f..k", -- 6 + ".f...f..o", -- 7 + ".efffe..o", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 7 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".ejjje...", -- 4 + ".j...j...", -- 5 + ".j.k.j..k", -- 6 + ".j...j..o", -- 7 + ".ejjje...", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 8 + "mmmmmmm.o", -- 0 + "mmmmmmm.o", -- 1 + "mmmmmmm.o", -- 2 + ".........", -- 3 + ".efffe...", -- 4 + ".f...f..k", -- 5 + ".f.k.f..o", -- 6 + ".f...f..o", -- 7 + ".efffe...", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 9 + "mmmmmmm.k", -- 0 + "mmmmmmm.k", -- 1 + "mmmmmmm.o", -- 2 + "........o", -- 3 + ".epppe..o", -- 4 + ".q...q..k", -- 5 + ".q.k.q..o", -- 6 + ".q...q..k", -- 7 + ".epppe..k", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 10 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm.k", -- 2 + "rrrrrrr.k", -- 3 + "sfffffs.o", -- 4 + ".f...f..o", -- 5 + ".f.kppppp", -- 6 + ".f...f..o", -- 7 + "tffffft.o", -- 8 + "uuuuuuu.k", -- 9 + "mmmmmmm.k", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 11 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + "rrrrrrr.k", -- 4 + "sfffffs.k", -- 5 + ".f...f..o", -- 6 + "tffffft.k", -- 7 + "uuuuuuu.o", -- 8 + "........o", -- 9 + "mmmmmmm.o", -- 10 + "mmmmmmm.k", -- 11 + "mmmmmmm.k", -- 12 + + -- Level 12 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".........", -- 4 + "rrrrrrr.o", -- 5 + "fffffff.o", -- 6 + "uuuuuuu.k", -- 7 + ".........", -- 8 + ".........", -- 9 + "mmmmmmm.o", -- 10 + "mmmmmmm.o", -- 11 + "mmmmmmm.o", -- 12 + + -- Level 13 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + ".........", -- 4 + "........o", -- 5 + "........k", -- 6 + ".........", -- 7 + ".........", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 14 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + "........o", -- 4 + "........o", -- 5 + "........k", -- 6 + ".........", -- 7 + ".........", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 15 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + "........o", -- 4 + "........k", -- 5 + ".........", -- 6 + ".........", -- 7 + ".........", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + -- Level 16 + "mmmmmmm..", -- 0 + "mmmmmmm..", -- 1 + "mmmmmmm..", -- 2 + ".........", -- 3 + "........o", -- 4 + "........k", -- 5 + ".........", -- 6 + ".........", -- 7 + ".........", -- 8 + ".........", -- 9 + "mmmmmmm..", -- 10 + "mmmmmmm..", -- 11 + "mmmmmmm..", -- 12 + + }, + }, -- WoodenMill5x5 + + + + { + OriginData = + { + ExportName = "RoofedWell", + Name = "Plains 119", + GalleryName = "Plains", + GalleryIndex = "119", + ID = "271", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 15, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 14, + MaxZ = 6, + }, + Connectors = + { + { + Type = 2, + RelX = 0, + RelY = 9, + RelZ = 3, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 3, + RelY = 9, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 6, + RelY = 9, + RelZ = 3, + Direction = 5, -- X+ + }, + { + Type = 2, + RelX = 3, + RelY = 9, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 4: 0", -- cobblestone + "c: 8: 0", -- water + "d: 3: 0", -- dirt + "e: 2: 0", -- grass + "f: 13: 0", -- gravel + "g:118: 3", -- cauldronblock + "h: 85: 0", -- fence + "i: 53: 2", -- woodstairs + "j: 53: 7", -- woodstairs + "k: 5: 0", -- planks + "l: 53: 4", -- woodstairs + "m: 19: 0", -- sponge + "n: 53: 5", -- woodstairs + "o: 53: 6", -- woodstairs + "p: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "aaaaaaa", -- 0 + "aaaaaaa", -- 1 + "aaaaaaa", -- 2 + "aaaaaaa", -- 3 + "aaaaaaa", -- 4 + "aaaaaaa", -- 5 + "aaaaaaa", -- 6 + + -- Level 1 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 2 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 3 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 4 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 5 + "ddddddd", -- 0 + "dbbbbbd", -- 1 + "dbcccbd", -- 2 + "dbcccbd", -- 3 + "dbcccbd", -- 4 + "dbbbbbd", -- 5 + "ddddddd", -- 6 + + -- Level 6 + "ddddddd", -- 0 + "dbbbbbd", -- 1 + "dbcccbd", -- 2 + "dbcccbd", -- 3 + "dbcccbd", -- 4 + "dbbbbbd", -- 5 + "ddddddd", -- 6 + + -- Level 7 + "ddddddd", -- 0 + "dbbbbbd", -- 1 + "dbcccbd", -- 2 + "dbcccbd", -- 3 + "dbcccbd", -- 4 + "dbbbbbd", -- 5 + "ddddddd", -- 6 + + -- Level 8 + "eefffee", -- 0 + "ebbbbbe", -- 1 + "fbcccbf", -- 2 + "fbcccbf", -- 3 + "fbcccbf", -- 4 + "ebbbbbe", -- 5 + "eefffee", -- 6 + + -- Level 9 + ".......", -- 0 + ".bbbbb.", -- 1 + ".b...b.", -- 2 + ".b.g.b.", -- 3 + ".b...b.", -- 4 + ".bbbbb.", -- 5 + ".......", -- 6 + + -- Level 10 + ".......", -- 0 + ".h...h.", -- 1 + ".......", -- 2 + "...h...", -- 3 + ".......", -- 4 + ".h...h.", -- 5 + ".......", -- 6 + + -- Level 11 + ".......", -- 0 + ".h...h.", -- 1 + ".......", -- 2 + "...h...", -- 3 + ".......", -- 4 + ".h...h.", -- 5 + ".......", -- 6 + + -- Level 12 + "iiiiiii", -- 0 + "jkjjjkj", -- 1 + ".l...n.", -- 2 + ".l.h.n.", -- 3 + ".l...n.", -- 4 + "okoooko", -- 5 + "ppppppp", -- 6 + + -- Level 13 + ".......", -- 0 + "iiiiiii", -- 1 + "jkjjjkj", -- 2 + ".k.h.k.", -- 3 + "okoooko", -- 4 + "ppppppp", -- 5 + ".......", -- 6 + + -- Level 14 + ".......", -- 0 + ".......", -- 1 + "iiiiiii", -- 2 + "kkkkkkk", -- 3 + "ppppppp", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- RoofedWell + + + + { + OriginData = + { + ExportName = "MineEntrance", + Name = "Plains 138", + GalleryName = "Plains", + GalleryIndex = "138", + ID = "446", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 7, + y = 38, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 37, + MaxZ = 6, + }, + Connectors = + { + { + Type = 2, + RelX = 6, + RelY = 32, + RelZ = 3, + Direction = 5, -- X+ + }, + { + Type = 2, + RelX = 3, + RelY = 32, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 0, + RelY = 32, + RelZ = 3, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 3, + RelY = 32, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 77: 2", -- stonebutton + "c: 66: 6", -- tracks + "d: 27: 1", -- poweredrail + "e: 66: 5", -- tracks + "f: 66: 9", -- tracks + "g: 66: 2", -- tracks + "h: 50: 4", -- torch + "i: 66: 4", -- tracks + "j: 66: 8", -- tracks + "k: 66: 3", -- tracks + "l: 66: 7", -- tracks + "m: 19: 0", -- sponge + "n: 50: 2", -- torch + "o: 4: 0", -- cobblestone + "p: 2: 0", -- grass + "q: 13: 0", -- gravel + "r: 53: 2", -- woodstairs + "s: 77: 1", -- stonebutton + "t: 27: 0", -- poweredrail + "u: 53: 7", -- woodstairs + "v: 53: 6", -- woodstairs + "w: 53: 3", -- woodstairs + }, + BlockData = + { + -- Level 0 + "maaaaam", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + "mm...mm", -- 0 + "mm.abam", -- 1 + "mmcddam", -- 2 + "mae..am", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 2 + "mm...mm", -- 0 + "mm.a.mm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 3 + "mm.h.mm", -- 0 + "mm.a.mm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 4 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 5 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 6 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 7 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 8 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 9 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 10 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 11 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 12 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 13 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 14 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 15 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 16 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 17 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 18 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 19 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 20 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 21 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 22 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 23 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 24 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 25 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 26 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm...mm", -- 2 + "ma..aam", -- 3 + "mmfgamm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 27 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mm.aamm", -- 2 + "ma..iam", -- 3 + "mm..jmm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 28 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmaklmm", -- 2 + "maa..am", -- 3 + "mm...mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 29 + "mmmmmmm", -- 0 + "mmmammm", -- 1 + "mmc..mm", -- 2 + "mae.nam", -- 3 + "mmaa.mm", -- 4 + "mmmammm", -- 5 + "mmmmmmm", -- 6 + + -- Level 30 + "mmooomm", -- 0 + "mmmammm", -- 1 + "om...mo", -- 2 + "oa..aao", -- 3 + "omfgamo", -- 4 + "mmmammm", -- 5 + "mmooomm", -- 6 + + -- Level 31 + "ppqqqpp", -- 0 + "paaaaap", -- 1 + "qa.aaaq", -- 2 + "qa..iaq", -- 3 + "qa..jaq", -- 4 + "paaaaap", -- 5 + "ppqqqpp", -- 6 + + -- Level 32 + "...r...", -- 0 + ".astba.", -- 1 + "...fl..", -- 2 + ".......", -- 3 + ".......", -- 4 + ".a...a.", -- 5 + ".......", -- 6 + + -- Level 33 + ".......", -- 0 + ".a...a.", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + ".a...a.", -- 5 + ".......", -- 6 + + -- Level 34 + ".......", -- 0 + ".a...a.", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + ".a...a.", -- 5 + ".......", -- 6 + + -- Level 35 + "rrrrrrr", -- 0 + "uaaaaau", -- 1 + ".a...a.", -- 2 + ".a...a.", -- 3 + ".a...a.", -- 4 + "vaaaaav", -- 5 + "wwwwwww", -- 6 + + -- Level 36 + ".......", -- 0 + "rrrrrrr", -- 1 + "uaaaaau", -- 2 + ".aaaaa.", -- 3 + "vaaaaav", -- 4 + "wwwwwww", -- 5 + ".......", -- 6 + + -- Level 37 + ".......", -- 0 + ".......", -- 1 + "rrrrrrr", -- 2 + "aaaaaaa", -- 3 + "wwwwwww", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- MineEntrance + + + + { + OriginData = + { + ExportName = "MineshaftCorridor", + Name = "Plains 139", + GalleryName = "Plains", + GalleryIndex = "139", + ID = "447", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 10, + y = 4, + z = 3, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 3, + MaxZ = 2, + }, + Connectors = + { + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 9, + RelY = 1, + RelZ = 1, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["AddWeightIfSame"] = "200", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 85: 0", -- fence + "c: 66: 1", -- tracks + "d: 50: 2", -- torch + "e: 50: 1", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaa", -- 0 + "aaaaaaaaaa", -- 1 + "aaaaaaaaaa", -- 2 + + -- Level 1 + "..b....b..", -- 0 + "cccccccccc", -- 1 + "..b....b..", -- 2 + + -- Level 2 + "..b....b..", -- 0 + "..........", -- 1 + "..b....b..", -- 2 + + -- Level 3 + "..a....a..", -- 0 + ".dae..dae.", -- 1 + "..a....a..", -- 2 + + }, + }, -- MineshaftCorridor + + + + { + OriginData = + { + ExportName = "Scarecrow", + Name = "Plains 150", + GalleryName = "Plains", + GalleryIndex = "150", + ID = "494", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 1, + y = 6, + z = 3, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 0, + MaxY = 5, + MaxZ = 2, + }, + Connectors = + { + { + Type = -1, + RelX = -1, + RelY = 0, + RelZ = 1, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "10", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a:139: 0", -- cobblestonewall + "b: 85: 0", -- fence + "c:126: 4", -- woodenslab + "d: 86: 1", -- pumpkin + "e:139: 1", -- cobblestonewall + "f:163: 4", -- acaciawoodstairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + ".", -- 0 + "a", -- 1 + ".", -- 2 + + -- Level 1 + ".", -- 0 + "b", -- 1 + ".", -- 2 + + -- Level 2 + "c", -- 0 + "d", -- 1 + "c", -- 2 + + -- Level 3 + ".", -- 0 + "e", -- 1 + ".", -- 2 + + -- Level 4 + "f", -- 0 + "d", -- 1 + "f", -- 2 + + -- Level 5 + ".", -- 0 + "f", -- 1 + ".", -- 2 + + }, + }, -- Scarecrow + + + + { + OriginData = + { + ExportName = "MineshaftCrossing", + Name = "Plains 171", + GalleryName = "Plains", + GalleryIndex = "171", + ID = "578", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 5, + y = 4, + z = 5, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 4, + MaxY = 3, + MaxZ = 4, + }, + Connectors = + { + { + Type = 3, + RelX = 4, + RelY = 1, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 4, + RelY = 1, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 2, + RelY = 1, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 2, + RelY = 1, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 0, + RelY = 1, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 2, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = -3, + RelX = 2, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["DefaultWeight"] = "1", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 66: 0", -- tracks + "c: 66: 1", -- tracks + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + + -- Level 1 + "m.b.m", -- 0 + ".aba.", -- 1 + "ccccc", -- 2 + ".aba.", -- 3 + "m.b.m", -- 4 + + -- Level 2 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + -- Level 3 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + }, + }, -- MineshaftCrossing + + + + { + OriginData = + { + ExportName = "MineshaftDoubleCrossing", + Name = "Plains 172", + GalleryName = "Plains", + GalleryIndex = "172", + ID = "579", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 5, + y = 8, + z = 5, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 4, + MaxY = 7, + MaxZ = 4, + }, + Connectors = + { + { + Type = -3, + RelX = 4, + RelY = 5, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = 3, + RelX = 4, + RelY = 5, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 2, + RelY = 1, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 2, + RelY = 1, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 0, + RelY = 1, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 2, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 2, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = -3, + RelX = 4, + RelY = 1, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = 3, + RelX = 4, + RelY = 1, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 2, + RelY = 5, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 2, + RelY = 5, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = -3, + RelX = 0, + RelY = 5, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 0, + RelY = 5, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 2, + RelY = 5, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 2, + RelY = 5, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["DefaultWeight"] = "1", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 66: 0", -- tracks + "c: 66: 1", -- tracks + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + + -- Level 1 + "m.b.m", -- 0 + ".aba.", -- 1 + "ccccc", -- 2 + ".aba.", -- 3 + "m.b.m", -- 4 + + -- Level 2 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + -- Level 3 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + -- Level 4 + "aaaaa", -- 0 + "aa.aa", -- 1 + "a...a", -- 2 + "aa.aa", -- 3 + "aaaaa", -- 4 + + -- Level 5 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + -- Level 6 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + -- Level 7 + "m...m", -- 0 + ".a.a.", -- 1 + ".....", -- 2 + ".a.a.", -- 3 + "m...m", -- 4 + + }, + }, -- MineshaftDoubleCrossing + + + + { + OriginData = + { + ExportName = "MineshaftCrossing", + Name = "Plains 193", + GalleryName = "Plains", + GalleryIndex = "193", + ID = "657", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 4, + z = 11, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 3, + MaxZ = 10, + }, + Connectors = + { + { + Type = 3, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = -3, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 0, + RelY = 1, + RelZ = 5, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 5, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 5, + RelY = 1, + RelZ = 10, + Direction = 3, -- Z+ + }, + { + Type = -3, + RelX = 5, + RelY = 1, + RelZ = 10, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 10, + RelY = 1, + RelZ = 5, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 10, + RelY = 1, + RelZ = 5, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["DefaultWeight"] = "10", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 66: 0", -- tracks + "c: 85: 0", -- fence + "d: 66: 1", -- tracks + "e: 50: 4", -- torch + "f: 50: 3", -- torch + "g: 50: 2", -- torch + "h: 50: 1", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "mmmmaaammmm", -- 1 + "mmmmaaammmm", -- 2 + "mmmmaaammmm", -- 3 + "aaaaaaaaaaa", -- 4 + "aaaaaaaaaaa", -- 5 + "aaaaaaaaaaa", -- 6 + "mmmmaaammmm", -- 7 + "mmmmaaammmm", -- 8 + "mmmmaaammmm", -- 9 + "mmmmaaammmm", -- 10 + + -- Level 1 + "mmmm.b.mmmm", -- 0 + "mmmm.b.mmmm", -- 1 + "mmmmcbcmmmm", -- 2 + "mmmm.b.mmmm", -- 3 + "..c..b..c..", -- 4 + "ddddddddddd", -- 5 + "..c..b..c..", -- 6 + "mmmm.b.mmmm", -- 7 + "mmmmcbcmmmm", -- 8 + "mmmm.b.mmmm", -- 9 + "mmmm.b.mmmm", -- 10 + + -- Level 2 + "mmmm...mmmm", -- 0 + "mmmm...mmmm", -- 1 + "mmmmc.cmmmm", -- 2 + "mmmm...mmmm", -- 3 + "..c.....c..", -- 4 + "...........", -- 5 + "..c.....c..", -- 6 + "mmmm...mmmm", -- 7 + "mmmmc.cmmmm", -- 8 + "mmmm...mmmm", -- 9 + "mmmm...mmmm", -- 10 + + -- Level 3 + "mmmm...mmmm", -- 0 + "mmmm.e.mmmm", -- 1 + "mmmmaaammmm", -- 2 + "mmmm.f.mmmm", -- 3 + "..a.....a..", -- 4 + ".gah...gah.", -- 5 + "..a.....a..", -- 6 + "mmmm.e.mmmm", -- 7 + "mmmmaaammmm", -- 8 + "mmmm.f.mmmm", -- 9 + "mmmm...mmmm", -- 10 + + }, + }, -- MineshaftCrossing + + + + { + OriginData = + { + ExportName = "MineshaftTee", + Name = "Plains 194", + GalleryName = "Plains", + GalleryIndex = "194", + ID = "658", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 4, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 3, + MaxZ = 6, + }, + Connectors = + { + { + Type = 3, + RelX = 0, + RelY = 1, + RelZ = 5, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 5, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = -3, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 3, + RelX = 10, + RelY = 1, + RelZ = 5, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 10, + RelY = 1, + RelZ = 5, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["DefaultWeight"] = "20", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 66: 0", -- tracks + "c: 85: 0", -- fence + "d: 66: 1", -- tracks + "e: 50: 4", -- torch + "f: 50: 3", -- torch + "g: 50: 2", -- torch + "h: 50: 1", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "mmmmaaammmm", -- 1 + "mmmmaaammmm", -- 2 + "mmmmaaammmm", -- 3 + "aaaaaaaaaaa", -- 4 + "aaaaaaaaaaa", -- 5 + "aaaaaaaaaaa", -- 6 + + -- Level 1 + "mmmm.b.mmmm", -- 0 + "mmmm.b.mmmm", -- 1 + "mmmmcbcmmmm", -- 2 + "mmmm.b.mmmm", -- 3 + "..c..b..c..", -- 4 + "ddddddddddd", -- 5 + "..c.....c..", -- 6 + + -- Level 2 + "mmmm...mmmm", -- 0 + "mmmm...mmmm", -- 1 + "mmmmc.cmmmm", -- 2 + "mmmm...mmmm", -- 3 + "..c.....c..", -- 4 + "...........", -- 5 + "..c.....c..", -- 6 + + -- Level 3 + "mmmm...mmmm", -- 0 + "mmmm.e.mmmm", -- 1 + "mmmmaaammmm", -- 2 + "mmmm.f.mmmm", -- 3 + "..a.....a..", -- 4 + ".gah...gah.", -- 5 + "..a.....a..", -- 6 + + }, + }, -- MineshaftTee + + + + { + OriginData = + { + ExportName = "MineshaftStairs", + Name = "Plains 195", + GalleryName = "Plains", + GalleryIndex = "195", + ID = "659", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 8, + z = 3, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 7, + MaxZ = 2, + }, + Connectors = + { + { + Type = 3, + RelX = 0, + RelY = 1, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 6, + RelY = 5, + RelZ = 1, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 6, + RelY = 5, + RelZ = 1, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 66: 1", -- tracks + "c: 66: 2", -- tracks + "d: 85: 0", -- fence + "e: 50: 1", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaammmm", -- 0 + "aaammmm", -- 1 + "aaammmm", -- 2 + + -- Level 1 + "..aammm", -- 0 + "bcaammm", -- 1 + "..aammm", -- 2 + + -- Level 2 + "...aamm", -- 0 + "..caamm", -- 1 + "...aamm", -- 2 + + -- Level 3 + "...daam", -- 0 + "...caam", -- 1 + "...daam", -- 2 + + -- Level 4 + "m..d.aa", -- 0 + "m...caa", -- 1 + "m..d.aa", -- 2 + + -- Level 5 + "mm.d...", -- 0 + "mm...bb", -- 1 + "mm.d...", -- 2 + + -- Level 6 + "mmmd...", -- 0 + "mmm....", -- 1 + "mmmd...", -- 2 + + -- Level 7 + "mmma...", -- 0 + "mmmae..", -- 1 + "mmma...", -- 2 + + }, + }, -- MineshaftStairs + + + + { + OriginData = + { + ExportName = "MineshaftSpiral", + Name = "Plains 198", + GalleryName = "Plains", + GalleryIndex = "198", + ID = "662", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 12, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 11, + MaxZ = 6, + }, + Connectors = + { + { + Type = 3, + RelX = 1, + RelY = 1, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = -3, + RelX = 1, + RelY = 1, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 0, + RelY = 9, + RelZ = 5, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 0, + RelY = 9, + RelZ = 5, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 85: 0", -- fence + "c: 66: 4", -- tracks + "d: 66: 0", -- tracks + "e: 66: 6", -- tracks + "f: 66: 2", -- tracks + "g: 50: 1", -- torch + "h: 50: 3", -- torch + "i: 66: 1", -- tracks + "j: 66: 7", -- tracks + "k: 66: 5", -- tracks + "l: 50: 2", -- torch + "m: 19: 0", -- sponge + "n: 66: 3", -- tracks + "o: 66: 8", -- tracks + "p: 50: 4", -- torch + }, + BlockData = + { + -- Level 0 + "mmmmmmm", -- 0 + "mmmmmmm", -- 1 + "mmmmmmm", -- 2 + "aaabmmm", -- 3 + "aaammmm", -- 4 + "aaammmm", -- 5 + "aaammmm", -- 6 + + -- Level 1 + "mmmmmmm", -- 0 + "mmmmmmm", -- 1 + "aaammmm", -- 2 + "aaabmmm", -- 3 + ".c.mmmm", -- 4 + ".d.mmmm", -- 5 + ".d.mmmm", -- 6 + + -- Level 2 + "aaaammm", -- 0 + "aaaammm", -- 1 + "aaaammm", -- 2 + ".c.bmmm", -- 3 + "...mmmm", -- 4 + "...mmmm", -- 5 + "...mmmm", -- 6 + + -- Level 3 + "b..aamm", -- 0 + ".efaamm", -- 1 + ".d.aamm", -- 2 + "...bmmm", -- 3 + "...mmmm", -- 4 + "...mmmm", -- 5 + "...mmmm", -- 6 + + -- Level 4 + "b...aaa", -- 0 + "...faaa", -- 1 + "....aaa", -- 2 + "...baaa", -- 3 + "...mmmm", -- 4 + "mmmmmmm", -- 5 + "mmmmmmm", -- 6 + + -- Level 5 + "ag....b", -- 0 + "h...ij.", -- 1 + ".....k.", -- 2 + "...baaa", -- 3 + "mmmmaaa", -- 4 + "mmmmmmm", -- 5 + "mmmmmmm", -- 6 + + -- Level 6 + "mm....b", -- 0 + "mm.....", -- 1 + "mm.....", -- 2 + "mmmb.k.", -- 3 + "mmmaaaa", -- 4 + "mmmaaaa", -- 5 + "mmmaaaa", -- 6 + + -- Level 7 + "mmm..la", -- 0 + "mmm...h", -- 1 + "mmm....", -- 2 + "mmmb...", -- 3 + "mmaa.d.", -- 4 + "mmaano.", -- 5 + "mmaa..b", -- 6 + + -- Level 8 + "mmmmmmm", -- 0 + "mmmmmmm", -- 1 + "mmmm...", -- 2 + "mmmb...", -- 3 + "aaa....", -- 4 + "aaan...", -- 5 + "aaa...b", -- 6 + + -- Level 9 + "mmmmmmm", -- 0 + "mmmmmmm", -- 1 + "mmmmmmm", -- 2 + "mmmb...", -- 3 + ".......", -- 4 + "iii...p", -- 5 + ".....la", -- 6 + + -- Level 10 + "mmmmmmm", -- 0 + "mmmmmmm", -- 1 + "mmmmmmm", -- 2 + "mmmbmmm", -- 3 + ".....mm", -- 4 + ".....mm", -- 5 + ".....mm", -- 6 + + -- Level 11 + "mmmmmmm", -- 0 + "mmmmmmm", -- 1 + "mmmmmmm", -- 2 + "mmmbmmm", -- 3 + "....mmm", -- 4 + "....mmm", -- 5 + "....mmm", -- 6 + + }, + }, -- MineshaftSpiral + + + + { + OriginData = + { + ExportName = "MineshaftStairsCrossing", + Name = "Plains 199", + GalleryName = "Plains", + GalleryIndex = "199", + ID = "663", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 12, + z = 12, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 11, + MaxZ = 11, + }, + Connectors = + { + { + Type = 3, + RelX = 0, + RelY = 5, + RelZ = 6, + Direction = 4, -- X- + }, + { + Type = -3, + RelX = 0, + RelY = 5, + RelZ = 6, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 10, + RelY = 5, + RelZ = 6, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 10, + RelY = 5, + RelZ = 6, + Direction = 5, -- X+ + }, + { + Type = 3, + RelX = 5, + RelY = 9, + RelZ = 11, + Direction = 3, -- Z+ + }, + { + Type = -3, + RelX = 5, + RelY = 9, + RelZ = 11, + Direction = 3, -- Z+ + }, + { + Type = 3, + RelX = 5, + RelY = 1, + RelZ = 1, + Direction = 2, -- Z- + }, + { + Type = -3, + RelX = 5, + RelY = 1, + RelZ = 1, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["DefaultWeight"] = "30", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 66: 0", -- tracks + "c: 66: 5", -- tracks + "d: 85: 0", -- fence + "e: 66: 1", -- tracks + "f: 50: 3", -- torch + "g: 50: 2", -- torch + "h: 50: 1", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "mmmmaaammmm", -- 1 + "mmmmaaammmm", -- 2 + "mmmmmmmmmmm", -- 3 + "mmmmmmmmmmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmmmmmmmmm", -- 8 + "mmmmmmmmmmm", -- 9 + "mmmmmmmmmmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 1 + "mmmm.b.mmmm", -- 0 + "mmmm.c.mmmm", -- 1 + "mmmmaaammmm", -- 2 + "mmmmaaammmm", -- 3 + "mmmmmmmmmmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmmmmmmmmm", -- 8 + "mmmmmmmmmmm", -- 9 + "mmmmmmmmmmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 2 + "mmmm...mmmm", -- 0 + "mmmm...mmmm", -- 1 + "mmmm.c.mmmm", -- 2 + "mmmmaaammmm", -- 3 + "mmmmaaammmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmmmmmmmmm", -- 8 + "mmmmmmmmmmm", -- 9 + "mmmmmmmmmmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 3 + "mmmm...mmmm", -- 0 + "mmmm...mmmm", -- 1 + "mmmm...mmmm", -- 2 + "mmmmdcdmmmm", -- 3 + "mmmmaaammmm", -- 4 + "mmmmaaammmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmmmmmmmmm", -- 8 + "mmmmmmmmmmm", -- 9 + "mmmmmmmmmmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 4 + "mmmmmmmmmmm", -- 0 + "mmmm...mmmm", -- 1 + "mmmm...mmmm", -- 2 + "mmmmd.dmmmm", -- 3 + "mmmm.c.mmmm", -- 4 + "aaaaaaaaaaa", -- 5 + "aaaaaaaaaaa", -- 6 + "aaaaaaaaaaa", -- 7 + "mmmmaaammmm", -- 8 + "mmmmmmmmmmm", -- 9 + "mmmmmmmmmmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 5 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmm...mmmm", -- 2 + "mmmmd.dmmmm", -- 3 + "mmmm...mmmm", -- 4 + "..d..b..d..", -- 5 + "eeeeeeeeeee", -- 6 + "..d..c..d..", -- 7 + "mmmmaaammmm", -- 8 + "mmmmaaammmm", -- 9 + "mmmmmmmmmmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 6 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmmmmmmmmm", -- 2 + "mmmmd.dmmmm", -- 3 + "mmmm...mmmm", -- 4 + "..d.....d..", -- 5 + "...........", -- 6 + "..d.....d..", -- 7 + "mmmm.c.mmmm", -- 8 + "mmmmaaammmm", -- 9 + "mmmmaaammmm", -- 10 + "mmmmmmmmmmm", -- 11 + + -- Level 7 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmmmmmmmmm", -- 2 + "mmmmaaammmm", -- 3 + "mmmm.f.mmmm", -- 4 + "..a.....a..", -- 5 + ".gah...gah.", -- 6 + "..a.....a..", -- 7 + "mmmm...mmmm", -- 8 + "mmmmdcdmmmm", -- 9 + "mmmmaaammmm", -- 10 + "mmmmaaammmm", -- 11 + + -- Level 8 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmmmmmmmmm", -- 2 + "mmmmmmmmmmm", -- 3 + "mmmmmmmmmmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmm...mmmm", -- 7 + "mmmm...mmmm", -- 8 + "mmmmd.dmmmm", -- 9 + "mmmm.c.mmmm", -- 10 + "mmmmaaammmm", -- 11 + + -- Level 9 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmmmmmmmmm", -- 2 + "mmmmmmmmmmm", -- 3 + "mmmmmmmmmmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmm...mmmm", -- 8 + "mmmmd.dmmmm", -- 9 + "mmmm...mmmm", -- 10 + "mmmm.b.mmmm", -- 11 + + -- Level 10 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmmmmmmmmm", -- 2 + "mmmmmmmmmmm", -- 3 + "mmmmmmmmmmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmmmmmmmmm", -- 8 + "mmmmd.dmmmm", -- 9 + "mmmm...mmmm", -- 10 + "mmmm...mmmm", -- 11 + + -- Level 11 + "mmmmmmmmmmm", -- 0 + "mmmmmmmmmmm", -- 1 + "mmmmmmmmmmm", -- 2 + "mmmmmmmmmmm", -- 3 + "mmmmmmmmmmm", -- 4 + "mmmmmmmmmmm", -- 5 + "mmmmmmmmmmm", -- 6 + "mmmmmmmmmmm", -- 7 + "mmmmmmmmmmm", -- 8 + "mmmmaaammmm", -- 9 + "mmmm.f.mmmm", -- 10 + "mmmm...mmmm", -- 11 + + }, + }, -- MineshaftStairsCrossing + + + + { + OriginData = + { + ExportName = "MineshaftsCorridor5", + Name = "Plains 200", + GalleryName = "Plains", + GalleryIndex = "200", + ID = "664", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 4, + z = 3, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 3, + MaxZ = 2, + }, + Connectors = + { + { + Type = 3, + RelX = 10, + RelY = 1, + RelZ = 1, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 10, + RelY = 1, + RelZ = 1, + Direction = 5, -- X+ + }, + { + Type = -3, + RelX = 0, + RelY = 1, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = 3, + RelX = 0, + RelY = 1, + RelZ = 1, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "0", + ["MoveToGround"] = "0", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 5: 0", -- planks + "b: 85: 0", -- fence + "c: 66: 1", -- tracks + "d: 50: 2", -- torch + "e: 50: 1", -- torch + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaa", -- 0 + "aaaaaaaaaaa", -- 1 + "aaaaaaaaaaa", -- 2 + + -- Level 1 + "..b.....b..", -- 0 + "ccccccccccc", -- 1 + "..b.....b..", -- 2 + + -- Level 2 + "..b.....b..", -- 0 + "...........", -- 1 + "..b.....b..", -- 2 + + -- Level 3 + "..a.....a..", -- 0 + ".dae...dae.", -- 1 + "..a.....a..", -- 2 + + }, + }, -- MineshaftsCorridor5 + }, -- Pieces +} + + + + diff --git a/MCServer/Prefabs/Villages/SandFlatRoofVillage.cubeset b/MCServer/Prefabs/Villages/SandFlatRoofVillage.cubeset new file mode 100644 index 000000000..cbaac332a --- /dev/null +++ b/MCServer/Prefabs/Villages/SandFlatRoofVillage.cubeset @@ -0,0 +1,1741 @@ + +-- SandFlatRoofVillage.cubeset + +-- Defines the prefabs in the group SandFlatRoofVillage + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2015-06-20 10:17:05", + ["AllowedBiomes"] = "Desert, DesertM", + ["IntendedUse"] = "Village", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "House5x4", + Name = "Desert 25", + GalleryName = "Desert", + GalleryIndex = "25", + ID = "166", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 6, + z = 6, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 5, + MaxZ = 6, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171: 0", -- carpet + "g:171:14", -- carpet + "h: 24: 2", -- sandstone + "i: 64: 9", -- wooddoorblock + "j: 50: 3", -- torch + "k:128: 4", -- sandstonestairs + "l:128: 6", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 5", -- sandstonestairs + "o:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaamm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "mmmmmmm", -- 5 + + -- Level 1 + "..bcd..", -- 0 + ".aaaaa.", -- 1 + ".aaaaa.", -- 2 + ".aaaaa.", -- 3 + ".aaaaa.", -- 4 + ".......", -- 5 + + -- Level 2 + ".......", -- 0 + ".aaeaa.", -- 1 + ".afgfa.", -- 2 + ".afgfa.", -- 3 + ".aaaaa.", -- 4 + ".......", -- 5 + + -- Level 3 + ".......", -- 0 + ".hhihh.", -- 1 + ".h...h.", -- 2 + ".h...h.", -- 3 + ".hh.hh.", -- 4 + ".......", -- 5 + + -- Level 4 + ".......", -- 0 + ".aaaaa.", -- 1 + ".aj.ja.", -- 2 + ".a...a.", -- 3 + ".aaaaa.", -- 4 + ".......", -- 5 + + -- Level 5 + "kllllln", -- 0 + "kaaaaan", -- 1 + "kaaaaan", -- 2 + "kaaaaan", -- 3 + "kaaaaan", -- 4 + "oooooon", -- 5 + + }, + }, -- House5x4 + + + + { + OriginData = + { + ExportName = "House5x5", + Name = "Desert 26", + GalleryName = "Desert", + GalleryIndex = "26", + ID = "167", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171: 0", -- carpet + "g:171:15", -- carpet + "h:171:14", -- carpet + "i: 24: 2", -- sandstone + "j: 64: 9", -- wooddoorblock + "k: 50: 3", -- torch + "l:128: 4", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:128: 5", -- sandstonestairs + "p:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaamm", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + "..bcd..", -- 0 + ".aaaaa.", -- 1 + ".aaaaa.", -- 2 + ".aaaaa.", -- 3 + ".aaaaa.", -- 4 + ".aaaaa.", -- 5 + ".......", -- 6 + + -- Level 2 + ".......", -- 0 + ".aaeaa.", -- 1 + ".afffa.", -- 2 + ".aghga.", -- 3 + ".afffa.", -- 4 + ".aaaaa.", -- 5 + ".......", -- 6 + + -- Level 3 + ".......", -- 0 + ".iijii.", -- 1 + ".i...i.", -- 2 + ".......", -- 3 + ".i...i.", -- 4 + ".ii.ii.", -- 5 + ".......", -- 6 + + -- Level 4 + ".......", -- 0 + ".aaaaa.", -- 1 + ".ak.ka.", -- 2 + ".a...a.", -- 3 + ".a...a.", -- 4 + ".aaaaa.", -- 5 + ".......", -- 6 + + -- Level 5 + "lnnnnno", -- 0 + "laaaaao", -- 1 + "laaaaao", -- 2 + "laaaaao", -- 3 + "laaaaao", -- 4 + "laaaaao", -- 5 + "ppppppo", -- 6 + + }, + }, -- House5x5 + + + + { + OriginData = + { + ExportName = "House7x5", + Name = "Desert 27", + GalleryName = "Desert", + GalleryIndex = "27", + ID = "168", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 9, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171:14", -- carpet + "g:171: 0", -- carpet + "h:171:15", -- carpet + "i: 24: 2", -- sandstone + "j: 64: 9", -- wooddoorblock + "k: 50: 3", -- torch + "l:128: 4", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:128: 5", -- sandstonestairs + "p:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaammmm", -- 0 + "maaaaaaam", -- 1 + "maaaaaaam", -- 2 + "maaaaaaam", -- 3 + "maaaaaaam", -- 4 + "maaaaaaam", -- 5 + "mmmmmmmmm", -- 6 + + -- Level 1 + "..bcd....", -- 0 + ".aaaaaaa.", -- 1 + ".aaaaaaa.", -- 2 + ".aaaaaaa.", -- 3 + ".aaaaaaa.", -- 4 + ".aaaaaaa.", -- 5 + ".........", -- 6 + + -- Level 2 + ".........", -- 0 + ".aaeaaaa.", -- 1 + ".afffffa.", -- 2 + ".aghhhga.", -- 3 + ".afffffa.", -- 4 + ".aaaaaaa.", -- 5 + ".........", -- 6 + + -- Level 3 + ".........", -- 0 + ".iiji.ii.", -- 1 + ".i.....i.", -- 2 + ".........", -- 3 + ".i.....i.", -- 4 + ".iii.iii.", -- 5 + ".........", -- 6 + + -- Level 4 + ".........", -- 0 + ".aaaaaaa.", -- 1 + ".ak.k..a.", -- 2 + ".a.....a.", -- 3 + ".a.....a.", -- 4 + ".aaaaaaa.", -- 5 + ".........", -- 6 + + -- Level 5 + "lnnnnnnnn", -- 0 + "laaaaaaao", -- 1 + "laaaaaaao", -- 2 + "laaaaaaao", -- 3 + "laaaaaaao", -- 4 + "laaaaaaao", -- 5 + "ppppppppo", -- 6 + + }, + }, -- House7x5 + + + + { + OriginData = + { + ExportName = "House8x5", + Name = "Desert 28", + GalleryName = "Desert", + GalleryIndex = "28", + ID = "169", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 10, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171: 0", -- carpet + "g:171:14", -- carpet + "h:171:15", -- carpet + "i: 24: 2", -- sandstone + "j: 64: 9", -- wooddoorblock + "k: 50: 3", -- torch + "l:128: 4", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:128: 5", -- sandstonestairs + "p:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaammmmm", -- 0 + "maaaaaaaam", -- 1 + "maaaaaaaam", -- 2 + "maaaaaaaam", -- 3 + "maaaaaaaam", -- 4 + "maaaaaaaam", -- 5 + "mmmmmmmmmm", -- 6 + + -- Level 1 + "..bcd.....", -- 0 + ".aaaaaaaa.", -- 1 + ".aaaaaaaa.", -- 2 + ".aaaaaaaa.", -- 3 + ".aaaaaaaa.", -- 4 + ".aaaaaaaa.", -- 5 + "..........", -- 6 + + -- Level 2 + "..........", -- 0 + ".aaeaaaaa.", -- 1 + ".afghhgfa.", -- 2 + ".afhffhfa.", -- 3 + ".afghhgfa.", -- 4 + ".aaaaaaaa.", -- 5 + "..........", -- 6 + + -- Level 3 + "..........", -- 0 + ".iijii.ii.", -- 1 + ".i......i.", -- 2 + "..........", -- 3 + ".i......i.", -- 4 + ".ii.ii.ii.", -- 5 + "..........", -- 6 + + -- Level 4 + "..........", -- 0 + ".aaaaaaaa.", -- 1 + ".ak.k...a.", -- 2 + ".a......a.", -- 3 + ".a......a.", -- 4 + ".aaaaaaaa.", -- 5 + "..........", -- 6 + + -- Level 5 + "lnnnnnnnnn", -- 0 + "laaaaaaaao", -- 1 + "laaaaaaaao", -- 2 + "laaaaaaaao", -- 3 + "laaaaaaaao", -- 4 + "laaaaaaaao", -- 5 + "pppppppppo", -- 6 + + }, + }, -- House8x5 + + + + { + OriginData = + { + ExportName = "House8x7", + Name = "Desert 29", + GalleryName = "Desert", + GalleryIndex = "29", + ID = "170", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 10, + y = 6, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 10, + MaxY = 5, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171: 0", -- carpet + "g:171:14", -- carpet + "h:171:15", -- carpet + "i: 24: 2", -- sandstone + "j: 64: 9", -- wooddoorblock + "k: 50: 3", -- torch + "l: 50: 1", -- torch + "m: 19: 0", -- sponge + "n: 50: 2", -- torch + "o:128: 4", -- sandstonestairs + "p:128: 6", -- sandstonestairs + "q:128: 5", -- sandstonestairs + "r:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaammmmm", -- 0 + "maaaaaaaam", -- 1 + "maaaaaaaam", -- 2 + "maaaaaaaam", -- 3 + "maaaaaaaam", -- 4 + "maaaaaaaam", -- 5 + "maaaaaaaam", -- 6 + "maaaaaaaam", -- 7 + "mmmmmmmmmm", -- 8 + + -- Level 1 + "..bcd.....", -- 0 + ".aaaaaaaa.", -- 1 + ".aaaaaaaa.", -- 2 + ".aaaaaaaa.", -- 3 + ".aaaaaaaa.", -- 4 + ".aaaaaaaa.", -- 5 + ".aaaaaaaa.", -- 6 + ".aaaaaaaa.", -- 7 + "..........", -- 8 + + -- Level 2 + "..........", -- 0 + ".aaeaaaaa.", -- 1 + ".afghhgfa.", -- 2 + ".afhffhfa.", -- 3 + ".afhgghfa.", -- 4 + ".afhffhfa.", -- 5 + ".afghhgfa.", -- 6 + ".aaaaaaaa.", -- 7 + "..........", -- 8 + + -- Level 3 + "..........", -- 0 + ".iijii.ii.", -- 1 + ".i......i.", -- 2 + ".i......i.", -- 3 + "..........", -- 4 + ".i......i.", -- 5 + ".i......i.", -- 6 + ".ii.ii.ii.", -- 7 + "..........", -- 8 + + -- Level 4 + "..........", -- 0 + ".aaaaaaaa.", -- 1 + ".a..k...a.", -- 2 + ".a......a.", -- 3 + ".al....na.", -- 4 + ".a......a.", -- 5 + ".a......a.", -- 6 + ".aaaaaaaa.", -- 7 + "..........", -- 8 + + -- Level 5 + "oppppppppp", -- 0 + "oaaaaaaaaq", -- 1 + "oaaaaaaaaq", -- 2 + "oaaaaaaaaq", -- 3 + "oaaaaaaaaq", -- 4 + "oaaaaaaaaq", -- 5 + "oaaaaaaaaq", -- 6 + "oaaaaaaaaq", -- 7 + "rrrrrrrrrq", -- 8 + + }, + }, -- House8x7 + + + + { + OriginData = + { + ExportName = "House9x7", + Name = "Desert 30", + GalleryName = "Desert", + GalleryIndex = "30", + ID = "171", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 6, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 5, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171: 0", -- carpet + "g:171:15", -- carpet + "h:171:14", -- carpet + "i: 24: 2", -- sandstone + "j: 64: 9", -- wooddoorblock + "k: 50: 3", -- torch + "l: 50: 1", -- torch + "m: 19: 0", -- sponge + "n: 50: 2", -- torch + "o: 50: 4", -- torch + "p:128: 4", -- sandstonestairs + "q:128: 6", -- sandstonestairs + "r:128: 5", -- sandstonestairs + "s:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaammmmmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "mmmmmmmmmmm", -- 8 + + -- Level 1 + "..bcd......", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + ".aaaaaaaaa.", -- 6 + ".aaaaaaaaa.", -- 7 + "...........", -- 8 + + -- Level 2 + "...........", -- 0 + ".aaeaaaaaa.", -- 1 + ".affgggffa.", -- 2 + ".afghhhgfa.", -- 3 + ".afghfhgfa.", -- 4 + ".afghhhgfa.", -- 5 + ".affgggffa.", -- 6 + ".aaaaaaaaa.", -- 7 + "...........", -- 8 + + -- Level 3 + "...........", -- 0 + ".iijii.iii.", -- 1 + ".i.......i.", -- 2 + ".i.......i.", -- 3 + "...........", -- 4 + ".i.......i.", -- 5 + ".i.......i.", -- 6 + ".ii.iii.ii.", -- 7 + "...........", -- 8 + + -- Level 4 + "...........", -- 0 + ".aaaaaaaaa.", -- 1 + ".a..k....a.", -- 2 + ".a.......a.", -- 3 + ".al.....na.", -- 4 + ".a.......a.", -- 5 + ".a...o...a.", -- 6 + ".aaaaaaaaa.", -- 7 + "...........", -- 8 + + -- Level 5 + "pqqqqqqqqqq", -- 0 + "paaaaaaaaar", -- 1 + "paaaaaaaaar", -- 2 + "paaaaaaaaar", -- 3 + "paaaaaaaaar", -- 4 + "paaaaaaaaar", -- 5 + "paaaaaaaaar", -- 6 + "paaaaaaaaar", -- 7 + "ssssssssssr", -- 8 + + }, + }, -- House9x7 + + + + { + OriginData = + { + ExportName = "House11x7", + Name = "Desert 31", + GalleryName = "Desert", + GalleryIndex = "31", + ID = "172", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 13, + y = 6, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 13, + MaxY = 5, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:171: 0", -- carpet + "g:171:15", -- carpet + "h:171:14", -- carpet + "i: 24: 2", -- sandstone + "j: 64: 9", -- wooddoorblock + "k: 50: 3", -- torch + "l: 50: 1", -- torch + "m: 19: 0", -- sponge + "n: 50: 2", -- torch + "o: 50: 4", -- torch + "p:128: 4", -- sandstonestairs + "q:128: 6", -- sandstonestairs + "r:128: 5", -- sandstonestairs + "s:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmaaammmmmmmm", -- 0 + "maaaaaaaaaaam", -- 1 + "maaaaaaaaaaam", -- 2 + "maaaaaaaaaaam", -- 3 + "maaaaaaaaaaam", -- 4 + "maaaaaaaaaaam", -- 5 + "maaaaaaaaaaam", -- 6 + "maaaaaaaaaaam", -- 7 + "mmmmmmmmmmmmm", -- 8 + + -- Level 1 + "..bcd........", -- 0 + ".aaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaa.", -- 7 + ".............", -- 8 + + -- Level 2 + ".............", -- 0 + ".aaeaaaaaaaa.", -- 1 + ".affgggggffa.", -- 2 + ".afghhhhhgfa.", -- 3 + ".afghfffhgfa.", -- 4 + ".afghhhhhgfa.", -- 5 + ".affgggggffa.", -- 6 + ".aaaaaaaaaaa.", -- 7 + ".............", -- 8 + + -- Level 3 + ".............", -- 0 + ".iiji.iii.ii.", -- 1 + ".i.........i.", -- 2 + ".i.........i.", -- 3 + ".............", -- 4 + ".i.........i.", -- 5 + ".i.........i.", -- 6 + ".ii.ii.ii.ii.", -- 7 + ".............", -- 8 + + -- Level 4 + ".............", -- 0 + ".aaaaaaaaaaa.", -- 1 + ".a..k..k...a.", -- 2 + ".a.........a.", -- 3 + ".al.......na.", -- 4 + ".a.........a.", -- 5 + ".a....o....a.", -- 6 + ".aaaaaaaaaaa.", -- 7 + ".............", -- 8 + + -- Level 5 + "pqqqqqqqqqqqq", -- 0 + "paaaaaaaaaaar", -- 1 + "paaaaaaaaaaar", -- 2 + "paaaaaaaaaaar", -- 3 + "paaaaaaaaaaar", -- 4 + "paaaaaaaaaaar", -- 5 + "paaaaaaaaaaar", -- 6 + "paaaaaaaaaaar", -- 7 + "ssssssssssssr", -- 8 + + }, + }, -- House11x7 + + + + { + OriginData = + { + ExportName = "Forge", + Name = "Desert 32", + GalleryName = "Desert", + GalleryIndex = "32", + ID = "173", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 12, + y = 6, + z = 10, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 12, + MaxY = 5, + MaxZ = 10, + }, + Connectors = + { + { + Type = -1, + RelX = 3, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e:128: 3", -- sandstonestairs + "f:171:15", -- carpet + "g: 64: 2", -- wooddoorblock + "h:171: 0", -- carpet + "i:171:14", -- carpet + "j: 61: 2", -- furnace + "k: 10: 0", -- lava + "l: 54: 2", -- chest + "m: 19: 0", -- sponge + "n: 24: 2", -- sandstone + "o: 64: 9", -- wooddoorblock + "p: 50: 1", -- torch + "q:101: 0", -- ironbars + "r:128: 4", -- sandstonestairs + "s:128: 6", -- sandstonestairs + "t:128: 5", -- sandstonestairs + "u:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "aaaaaaammmmm", -- 0 + "aaaaaaaaaaam", -- 1 + "aaaaaaaaaaam", -- 2 + "aaaaaaaaaaam", -- 3 + "aaaaaaaaaaam", -- 4 + "aaaaaaaaaaam", -- 5 + "maaaaaaaaaam", -- 6 + "maaaaaaaaaam", -- 7 + "maaaaaaaaaam", -- 8 + "mmmmmmmmmmmm", -- 9 + + -- Level 1 + "bcccccd.....", -- 0 + "baaaaaaaaaa.", -- 1 + "baaaaaaaaaa.", -- 2 + "baaaaaaaaaa.", -- 3 + "baaaaaaaaaa.", -- 4 + "eaaaaaaaaaa.", -- 5 + ".aaaaaaaaaa.", -- 6 + ".aaaaaaaaaa.", -- 7 + ".aaaaaaaaaa.", -- 8 + "............", -- 9 + + -- Level 2 + "............", -- 0 + ".a....aaaaa.", -- 1 + "......afffa.", -- 2 + "......ghfha.", -- 3 + "......aiiia.", -- 4 + ".a....ahfha.", -- 5 + ".ajaajafffa.", -- 6 + ".aakkaal..a.", -- 7 + ".aaaaaaaaaa.", -- 8 + "............", -- 9 + + -- Level 3 + "............", -- 0 + ".n....nn.nn.", -- 1 + "......n...n.", -- 2 + "......o...n.", -- 3 + "......n.....", -- 4 + ".n....n...n.", -- 5 + ".n....n...n.", -- 6 + ".n....n...n.", -- 7 + ".nnn.nnn.nn.", -- 8 + "............", -- 9 + + -- Level 4 + "............", -- 0 + ".a....aaaaa.", -- 1 + "......a...a.", -- 2 + "......a...a.", -- 3 + "......ap..a.", -- 4 + ".a....a...a.", -- 5 + ".aqqqqa...a.", -- 6 + ".a....a...a.", -- 7 + ".aaaaaaaaaa.", -- 8 + "............", -- 9 + + -- Level 5 + "rsssssssssss", -- 0 + "raaaaaaaaaat", -- 1 + "raaaaaaaaaat", -- 2 + "raaaaaaaaaat", -- 3 + "raaaaaaaaaat", -- 4 + "raaaaaaaaaat", -- 5 + "raaaaaaaaaat", -- 6 + "raaaaaaaaaat", -- 7 + "raaaaaaaaaat", -- 8 + "uuuuuuuuuuut", -- 9 + + }, + }, -- Forge + + + + { + OriginData = + { + ExportName = "MarketStall", + Name = "Desert 34", + GalleryName = "Desert", + GalleryIndex = "34", + ID = "175", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 6, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 5, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 2, + RelY = 0, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "5", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 12: 0", -- sand + "b: 85: 0", -- fence + "c:171:14", -- carpet + "d:171:15", -- carpet + "e:171: 0", -- carpet + "f: 35:14", -- wool + "g: 35: 0", -- wool + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaa", -- 0 + "aaaaaaa", -- 1 + "aaaaaaa", -- 2 + "aaaaaaa", -- 3 + "aaaaaaa", -- 4 + "aaaaaaa", -- 5 + "aaaaaaa", -- 6 + + -- Level 1 + "b.....b", -- 0 + "cddeddc", -- 1 + "cdeeedc", -- 2 + "cdeeedc", -- 3 + "cddeddc", -- 4 + "b.....b", -- 5 + ".......", -- 6 + + -- Level 2 + "b.....b", -- 0 + ".......", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + "b.....b", -- 5 + ".......", -- 6 + + -- Level 3 + "b.....b", -- 0 + ".......", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + "b.....b", -- 5 + "fgfgfgf", -- 6 + + -- Level 4 + "fgfgfgf", -- 0 + ".......", -- 1 + ".......", -- 2 + ".......", -- 3 + ".......", -- 4 + "fgfgfgf", -- 5 + ".......", -- 6 + + -- Level 5 + ".......", -- 0 + "fgfgfgf", -- 1 + "fgfgfgf", -- 2 + "fgfgfgf", -- 3 + "fgfgfgf", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- MarketStall + + + + { + OriginData = + { + ExportName = "Marketplace", + Name = "Desert 38", + GalleryName = "Desert", + GalleryIndex = "38", + ID = "261", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 14, + y = 4, + z = 16, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 3, + MaxZ = 16, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 0, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["AddWeightIfSame"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["DefaultWeight"] = "20", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b: 12: 0", -- sand + "c: 24: 2", -- sandstone + "d: 12: 2", -- sand + "e: 85: 0", -- fence + "f: 5: 0", -- planks + "g:128: 2", -- sandstonestairs + "h:128: 0", -- sandstonestairs + "i: 8: 0", -- water + "j:128: 1", -- sandstonestairs + "k:128: 3", -- sandstonestairs + "l: 35: 0", -- wool + "m: 19: 0", -- sponge + "n: 35:14", -- wool + }, + BlockData = + { + -- Level 0 + "aaaabbbaaabbbb", -- 0 + "aaaabbaabbabbb", -- 1 + "aababbabcabbbb", -- 2 + "aaaaabaaaaabbb", -- 3 + "bbbbbbbbbbbbbb", -- 4 + "bbbbbbbbbbaabb", -- 5 + "bbbbccccbbabab", -- 6 + "ccbbccccbbaaab", -- 7 + "ccbbccccbbabbb", -- 8 + "dcbbccccbbabaa", -- 9 + "ccbbbbbbbbaaba", -- 10 + "ccbbbbbbbbabaa", -- 11 + "bbbbbbbbbbabaa", -- 12 + "bbbaababbbaaba", -- 13 + "bbbcaaaabbabbb", -- 14 + "bbbcccabbbabbb", -- 15 + + -- Level 1 + "e...e.e...e...", -- 0 + "..............", -- 1 + "..............", -- 2 + "fffff.fffff...", -- 3 + "..............", -- 4 + "..........f..e", -- 5 + "....gggg..f...", -- 6 + ".f..hiij..f...", -- 7 + ".f..hiij..f...", -- 8 + ".f..kkkk..f..e", -- 9 + ".f............", -- 10 + ".f........f..e", -- 11 + "...fffff..f...", -- 12 + "..........f...", -- 13 + "..........f...", -- 14 + "...e...e..f..e", -- 15 + + -- Level 2 + "lnlnl.lnlnl...", -- 0 + "..............", -- 1 + "..............", -- 2 + "e...e.e...e...", -- 3 + "..............", -- 4 + "..........e..l", -- 5 + ".............n", -- 6 + ".e...........l", -- 7 + ".............n", -- 8 + "..........e..l", -- 9 + "..............", -- 10 + ".e........e..l", -- 11 + "...e...e.....n", -- 12 + ".............l", -- 13 + ".............n", -- 14 + "...lnlnl..e..l", -- 15 + + -- Level 3 + "..............", -- 0 + "lnlnl.lnlnl...", -- 1 + "lnlnl.lnlnl...", -- 2 + "lnlnl.lnlnl...", -- 3 + "..............", -- 4 + "..........lll.", -- 5 + "..........nnn.", -- 6 + "ll........lll.", -- 7 + "nn........nnn.", -- 8 + "ll........lll.", -- 9 + "nn............", -- 10 + "ll........lll.", -- 11 + "...lnlnl..nnn.", -- 12 + "...lnlnl..lll.", -- 13 + "...lnlnl..nnn.", -- 14 + "..........lll.", -- 15 + + }, + }, -- Marketplace + + + + { + OriginData = + { + ExportName = "Well", + Name = "Desert 44", + GalleryName = "Desert", + GalleryIndex = "44", + ID = "275", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 5, + y = 16, + z = 5, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 4, + MaxY = 15, + MaxZ = 4, + }, + Connectors = + { + { + Type = 2, + RelX = 4, + RelY = 11, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = 2, + RelX = 2, + RelY = 11, + RelZ = 4, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 0, + RelY = 11, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 2, + RelY = 11, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 24: 0", -- sandstone + "c: 8: 0", -- water + "d:128: 2", -- sandstonestairs + "e:128: 0", -- sandstonestairs + "f:128: 1", -- sandstonestairs + "g:128: 3", -- sandstonestairs + "h:128: 6", -- sandstonestairs + "i:128: 4", -- sandstonestairs + "j:128: 5", -- sandstonestairs + "k:128: 7", -- sandstonestairs + "l: 44: 1", -- step + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaa", -- 0 + "abbba", -- 1 + "abbba", -- 2 + "abbba", -- 3 + "aaaaa", -- 4 + + -- Level 1 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 2 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 3 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 4 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 5 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 6 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 7 + "bbbbb", -- 0 + "bcccb", -- 1 + "bcccb", -- 2 + "bcccb", -- 3 + "bbbbb", -- 4 + + -- Level 8 + "bbbbb", -- 0 + "bcbcb", -- 1 + "bbcbb", -- 2 + "bcbcb", -- 3 + "bbbbb", -- 4 + + -- Level 9 + "bbbbb", -- 0 + "bcbcb", -- 1 + "bbbbb", -- 2 + "bcbcb", -- 3 + "bbbbb", -- 4 + + -- Level 10 + "bbbbb", -- 0 + "bcbcb", -- 1 + "bbbbb", -- 2 + "bcbcb", -- 3 + "bbbbb", -- 4 + + -- Level 11 + "ddddd", -- 0 + "ecccf", -- 1 + "ecbcf", -- 2 + "ecccf", -- 3 + "ggggf", -- 4 + + -- Level 12 + ".....", -- 0 + ".....", -- 1 + "..b..", -- 2 + ".....", -- 3 + ".....", -- 4 + + -- Level 13 + ".....", -- 0 + ".....", -- 1 + "..b..", -- 2 + ".....", -- 3 + ".....", -- 4 + + -- Level 14 + ".....", -- 0 + ".hhh.", -- 1 + ".ibj.", -- 2 + ".kkj.", -- 3 + ".....", -- 4 + + -- Level 15 + "lllll", -- 0 + "lllll", -- 1 + "lllll", -- 2 + "lllll", -- 3 + "lllll", -- 4 + + }, + }, -- Well + + + + { + OriginData = + { + ExportName = "HouseL13x12", + Name = "Desert 53", + GalleryName = "Desert", + GalleryIndex = "53", + ID = "345", + CreatorName = "jakibaki", + }, + Size = + { + x = 15, + y = 6, + z = 14, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 15, + MaxY = 5, + MaxZ = 14, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 43: 1", -- doublestep + "f: 64: 3", -- wooddoorblock + "g:171: 0", -- carpet + "h:171:15", -- carpet + "i:171:14", -- carpet + "j: 58: 0", -- workbench + "k: 24: 2", -- sandstone + "l: 64: 9", -- wooddoorblock + "m: 19: 0", -- sponge + "n: 50: 3", -- torch + "o: 50: 1", -- torch + "p: 50: 2", -- torch + "q: 50: 4", -- torch + "r:128: 6", -- sandstonestairs + "s:128: 5", -- sandstonestairs + "t:128: 4", -- sandstonestairs + "u:128: 7", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmmaaammmmmmmmm", -- 0 + "maaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaaam", -- 7 + "mmmmmmmaaaaaaam", -- 8 + "mmmmmmmaaaaaaam", -- 9 + "mmmmmmmaaaaaaam", -- 10 + "mmmmmmmaaaaaaam", -- 11 + "mmmmmmmaaaaaaam", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + + -- Level 1 + "...bcd.........", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaea.", -- 5 + ".aaaaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaaaa.", -- 7 + ".......aeaaaaa.", -- 8 + "mmmmmm.aaaaaaa.", -- 9 + "mmmmmm.aaaaaaa.", -- 10 + "mmmmmm.aaaaaaa.", -- 11 + "mmmmmm.aaaaaaa.", -- 12 + "...............", -- 13 + + -- Level 2 + "...............", -- 0 + ".aaafaaaaaaaaa.", -- 1 + ".agghhhhhhhhga.", -- 2 + ".aghiiiiiiiiha.", -- 3 + ".aghiggggggiha.", -- 4 + ".aghiiiiiigiha.", -- 5 + ".agghhhhhigiha.", -- 6 + ".aaaaaaahigiha.", -- 7 + ".......ahigiha.", -- 8 + "mmmmmm.ahiiiha.", -- 9 + "mmmmmm.aghhhga.", -- 10 + "mmmmmm.aggggja.", -- 11 + "mmmmmm.aaaaaaa.", -- 12 + "...............", -- 13 + + -- Level 3 + "...............", -- 0 + ".kkklkkkk.kkkk.", -- 1 + ".k...........k.", -- 2 + ".k...........k.", -- 3 + "...............", -- 4 + ".k...........k.", -- 5 + ".k...........k.", -- 6 + ".kkk.kkk.....k.", -- 7 + ".......k.....k.", -- 8 + "mmmmmm.k.......", -- 9 + "mmmmmm.......k.", -- 10 + "mmmmmm.k.....k.", -- 11 + "mmmmmm.kkk.kkk.", -- 12 + "...............", -- 13 + + -- Level 4 + "...............", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".a......n....a.", -- 2 + ".a...........a.", -- 3 + ".ao..........a.", -- 4 + ".a...........a.", -- 5 + ".a..........pa.", -- 6 + ".aaaaaaa.....a.", -- 7 + ".......a.....a.", -- 8 + "mmmmmm.a.....a.", -- 9 + "mmmmmm.a.....a.", -- 10 + "mmmmmm.a..q..a.", -- 11 + "mmmmmm.aaaaaaa.", -- 12 + "...............", -- 13 + + -- Level 5 + "rrrrrrrrrrrrrrs", -- 0 + "taaaaaaaaaaaaas", -- 1 + "taaaaaaaaaaaaas", -- 2 + "taaaaaaaaaaaaas", -- 3 + "taaaaaaaaaaaaas", -- 4 + "taaaaaaaaaaaaas", -- 5 + "taaaaaaaaaaaaas", -- 6 + "taaaaaaaaaaaaas", -- 7 + "tuuuuutaaaaaaas", -- 8 + "mmmmmmtaaaaaaas", -- 9 + "mmmmmmtaaaaaaas", -- 10 + "mmmmmmtaaaaaaas", -- 11 + "mmmmmmtaaaaaaas", -- 12 + "......tuuuuuuuu", -- 13 + + }, + }, -- HouseL13x12 + }, -- Pieces +} + + + + diff --git a/MCServer/Prefabs/Villages/SandVillage.cubeset b/MCServer/Prefabs/Villages/SandVillage.cubeset new file mode 100644 index 000000000..63238fa6e --- /dev/null +++ b/MCServer/Prefabs/Villages/SandVillage.cubeset @@ -0,0 +1,2389 @@ + +-- SandVillage.cubeset + +-- Defines the prefabs in the group SandVillage + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2015-06-20 10:16:49", + ["AllowedBiomes"] = "Desert, DesertM", + ["IntendedUse"] = "Village", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "Well", + Name = "Desert 0", + GalleryName = "Desert", + GalleryIndex = "0", + ID = "1", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 4, + y = 13, + z = 4, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 3, + MaxY = 12, + MaxZ = 3, + }, + Connectors = + { + { + Type = 2, + RelX = 2, + RelY = 8, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 2, + RelX = 0, + RelY = 8, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 1, + RelY = 8, + RelZ = 3, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 3, + RelY = 8, + RelZ = 2, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 24: 0", -- sandstone + "c: 8: 0", -- water + "d: 85: 0", -- fence + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaa", -- 0 + "aaaa", -- 1 + "aaaa", -- 2 + "aaaa", -- 3 + + -- Level 1 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 2 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 3 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 4 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 5 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 6 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 7 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 8 + "bbbb", -- 0 + "b..b", -- 1 + "b..b", -- 2 + "bbbb", -- 3 + + -- Level 9 + "d..d", -- 0 + "....", -- 1 + "....", -- 2 + "d..d", -- 3 + + -- Level 10 + "d..d", -- 0 + "....", -- 1 + "....", -- 2 + "d..d", -- 3 + + -- Level 11 + "d..d", -- 0 + "....", -- 1 + "....", -- 2 + "d..d", -- 3 + + -- Level 12 + "bbbb", -- 0 + "bbbb", -- 1 + "bbbb", -- 2 + "bbbb", -- 3 + + }, + }, -- Well + + + + { + OriginData = + { + ExportName = "SmallHut", + Name = "Desert 4", + GalleryName = "Desert", + GalleryIndex = "4", + ID = "68", + CreatorName = "tonibm1999", + }, + Size = + { + x = 5, + y = 6, + z = 6, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 5, + MaxY = 5, + MaxZ = 5, + }, + Connectors = + { + { + Type = -1, + RelX = 2, + RelY = 1, + RelZ = 5, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 3", -- sandstonestairs + "c: 24: 2", -- sandstone + "d: 50: 5", -- torch + "e: 26:10", -- bedblock + "f: 26: 2", -- bedblock + "g: 64: 1", -- wooddoorblock + "h: 64: 9", -- wooddoorblock + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + "mmamm", -- 5 + + -- Level 1 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + "..b..", -- 5 + + -- Level 2 + "accca", -- 0 + "cdedc", -- 1 + "c.f.c", -- 2 + "c...c", -- 3 + "acgca", -- 4 + ".....", -- 5 + + -- Level 3 + "ac.ca", -- 0 + "c...c", -- 1 + ".....", -- 2 + "c...c", -- 3 + "achca", -- 4 + ".....", -- 5 + + -- Level 4 + "accca", -- 0 + "c...c", -- 1 + "c...c", -- 2 + "c...c", -- 3 + "accca", -- 4 + ".....", -- 5 + + -- Level 5 + ".aaa.", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + ".aaa.", -- 4 + ".....", -- 5 + + }, + }, -- SmallHut + + + + { + OriginData = + { + ExportName = "DoubleField", + Name = "Desert 5", + GalleryName = "Desert", + GalleryIndex = "5", + ID = "75", + CreatorName = "tonibm1999", + }, + Size = + { + x = 13, + y = 3, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = -1, + MaxX = 13, + MaxY = 2, + MaxZ = 8, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 1, + RelZ = 8, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b: 60: 7", -- tilleddirt + "c: 8: 0", -- water + "d: 50: 5", -- torch + "e: 59: 7", -- crops + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaaa", -- 4 + "aaaaaaaaaaaaa", -- 5 + "aaaaaaaaaaaaa", -- 6 + "aaaaaaaaaaaaa", -- 7 + "aaaaaaaaaaaaa", -- 8 + + -- Level 1 + "aaaaaaaaaaaaa", -- 0 + "abbcbbabbcbba", -- 1 + "abbcbbabbcbba", -- 2 + "abbcbbabbcbba", -- 3 + "abbcbbabbcbba", -- 4 + "abbcbbabbcbba", -- 5 + "abbcbbabbcbba", -- 6 + "abbcbbabbcbba", -- 7 + "aaaaaaaaaaaaa", -- 8 + + -- Level 2 + "d.....d.....d", -- 0 + ".ee.ee.ee.ee.", -- 1 + ".ee.ee.ee.ee.", -- 2 + ".ee.ee.ee.ee.", -- 3 + ".ee.ee.ee.ee.", -- 4 + ".ee.ee.ee.ee.", -- 5 + ".ee.ee.ee.ee.", -- 6 + ".ee.ee.ee.ee.", -- 7 + "d.....d.....d", -- 8 + + }, + }, -- DoubleField + + + + { + OriginData = + { + ExportName = "House11x7", + Name = "Desert 6", + GalleryName = "Desert", + GalleryIndex = "6", + ID = "81", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 11, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + "n: 50: 1", -- torch + "o: 50: 2", -- torch + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "mmmmmmmmmmm", -- 6 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + "...........", -- 6 + + -- Level 2 + "...........", -- 0 + ".aaaaeaaaa.", -- 1 + ".a.......a.", -- 2 + ".a.......a.", -- 3 + ".a.......a.", -- 4 + ".aaaaaaaaa.", -- 5 + "...........", -- 6 + + -- Level 3 + "...........", -- 0 + ".affagaffa.", -- 1 + ".f.......f.", -- 2 + ".f.......f.", -- 3 + ".f.......f.", -- 4 + ".affafaffa.", -- 5 + "...........", -- 6 + + -- Level 4 + "ccccccccccc", -- 0 + "haaaaaaaaah", -- 1 + ".a..i.i..a.", -- 2 + ".a.......a.", -- 3 + ".a..j.j..a.", -- 4 + "kaaaaaaaaak", -- 5 + "lllllllllll", -- 6 + + -- Level 5 + "...........", -- 0 + "ccccccccccc", -- 1 + "haaaaaaaaah", -- 2 + ".an.....oa.", -- 3 + "kaaaaaaaaak", -- 4 + "lllllllllll", -- 5 + "...........", -- 6 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "ccccccccccc", -- 2 + "aaaaaaaaaaa", -- 3 + "lllllllllll", -- 4 + "...........", -- 5 + "...........", -- 6 + + }, + }, -- House11x7 + + + + { + OriginData = + { + ExportName = "HouseL14x12", + Name = "Desert 7", + GalleryName = "Desert", + GalleryIndex = "7", + ID = "82", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 14, + y = 7, + z = 12, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 6, + MaxZ = 12, + }, + Connectors = + { + { + Type = -1, + RelX = 8, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e:128: 3", -- sandstonestairs + "f: 64: 3", -- wooddoorblock + "g: 64: 1", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j:128: 7", -- sandstonestairs + "k: 50: 3", -- torch + "l: 50: 4", -- torch + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:128: 5", -- sandstonestairs + "p:128: 4", -- sandstonestairs + "q: 50: 1", -- torch + }, + BlockData = + { + -- Level 0 + "mmmmmmmaaammmm", -- 0 + "maaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaam", -- 5 + "mmmmaaamaaaaam", -- 6 + "mmmmmmmmaaaaam", -- 7 + "mmmmmmmmaaaaam", -- 8 + "mmmmmmmmaaaaam", -- 9 + "mmmmmmmmaaaaam", -- 10 + "mmmmmmmmmmmmmm", -- 11 + + -- Level 1 + ".......bcd....", -- 0 + ".aaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaa.", -- 5 + "....bed.aaaaa.", -- 6 + "........aaaaa.", -- 7 + "........aaaaa.", -- 8 + "........aaaaa.", -- 9 + "........aaaaa.", -- 10 + "..............", -- 11 + + -- Level 2 + "..............", -- 0 + ".aaaaaaafaaaa.", -- 1 + ".a..........a.", -- 2 + ".a..........a.", -- 3 + ".a..........a.", -- 4 + ".aaaagaaa...a.", -- 5 + "........a...a.", -- 6 + "........a...a.", -- 7 + "........a...a.", -- 8 + "........a...a.", -- 9 + "........aaaaa.", -- 10 + "..............", -- 11 + + -- Level 3 + "..............", -- 0 + ".ahhahhaiahha.", -- 1 + ".h..........h.", -- 2 + ".h..........h.", -- 3 + ".h..........a.", -- 4 + ".ahhaiahh...h.", -- 5 + "........h...h.", -- 6 + "........a...a.", -- 7 + "........h...h.", -- 8 + "........h...h.", -- 9 + "........ahhha.", -- 10 + "..............", -- 11 + + -- Level 4 + "cccccccccccccc", -- 0 + "jaaaaaaaaaaaad", -- 1 + ".a.....k.k..ad", -- 2 + ".a..........ad", -- 3 + ".a..l.l.....ad", -- 4 + "naaaaaaaa...ad", -- 5 + "eeeeeeeba...ad", -- 6 + ".......ba...ad", -- 7 + ".......ba...ad", -- 8 + ".......ba...ad", -- 9 + ".......baaaaad", -- 10 + ".......bo...pd", -- 11 + + -- Level 5 + "..............", -- 0 + "ccccccccccccc.", -- 1 + "jaaaaaaaaaaad.", -- 2 + ".aq........ad.", -- 3 + "naaaaaaaaa.ad.", -- 4 + "eeeeeeeeba.ad.", -- 5 + "........ba.ad.", -- 6 + "........ba.ad.", -- 7 + "........ba.ad.", -- 8 + "........balad.", -- 9 + "........baaad.", -- 10 + "........bo.pd.", -- 11 + + -- Level 6 + "..............", -- 0 + "..............", -- 1 + "cccccccccccc..", -- 2 + "aaaaaaaaaaad..", -- 3 + "eeeeeeeeebad..", -- 4 + ".........bad..", -- 5 + ".........bad..", -- 6 + ".........bad..", -- 7 + ".........bad..", -- 8 + ".........bad..", -- 9 + ".........bad..", -- 10 + ".........bad..", -- 11 + + }, + }, -- HouseL14x12 + + + + { + OriginData = + { + ExportName = "House7x7", + Name = "Desert 8", + GalleryName = "Desert", + GalleryIndex = "8", + ID = "112", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 7, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j:128: 6", -- sandstonestairs + "k:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmaaam", -- 0 + "maaaaam", -- 1 + "maaaaam", -- 2 + "maaaaam", -- 3 + "maaaaam", -- 4 + "maaaaam", -- 5 + "mmmmmmm", -- 6 + + -- Level 1 + "...bcd.", -- 0 + ".aaaaa.", -- 1 + ".aaaaa.", -- 2 + ".aaaaa.", -- 3 + ".aaaaa.", -- 4 + ".aaaaa.", -- 5 + ".......", -- 6 + + -- Level 2 + ".......", -- 0 + ".aaaea.", -- 1 + ".a...a.", -- 2 + ".a...a.", -- 3 + ".a...a.", -- 4 + ".aaaaa.", -- 5 + ".......", -- 6 + + -- Level 3 + ".......", -- 0 + ".afaga.", -- 1 + ".f...f.", -- 2 + ".f...f.", -- 3 + ".f...f.", -- 4 + ".afffa.", -- 5 + ".......", -- 6 + + -- Level 4 + "ccccccc", -- 0 + "haaaaah", -- 1 + ".a.i.a.", -- 2 + ".a...a.", -- 3 + ".a...a.", -- 4 + "jaaaaaj", -- 5 + "kkkkkkk", -- 6 + + -- Level 5 + ".......", -- 0 + "ccccccc", -- 1 + "haaaaah", -- 2 + ".a...a.", -- 3 + "jaaaaaj", -- 4 + "kkkkkkk", -- 5 + ".......", -- 6 + + -- Level 6 + ".......", -- 0 + ".......", -- 1 + "ccccccc", -- 2 + "aaaaaaa", -- 3 + "kkkkkkk", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- House7x7 + + + + { + OriginData = + { + ExportName = "House9x7", + Name = "Desert 9", + GalleryName = "Desert", + GalleryIndex = "9", + ID = "113", + CreatorName = "xoft", + }, + Size = + { + x = 9, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmaaammm", -- 0 + "maaaaaaam", -- 1 + "maaaaaaam", -- 2 + "maaaaaaam", -- 3 + "maaaaaaam", -- 4 + "maaaaaaam", -- 5 + "mmmmmmmmm", -- 6 + + -- Level 1 + "...bcd...", -- 0 + ".aaaaaaa.", -- 1 + ".aaaaaaa.", -- 2 + ".aaaaaaa.", -- 3 + ".aaaaaaa.", -- 4 + ".aaaaaaa.", -- 5 + ".........", -- 6 + + -- Level 2 + ".........", -- 0 + ".aaaeaaa.", -- 1 + ".a.....a.", -- 2 + ".a.....a.", -- 3 + ".a.....a.", -- 4 + ".aaaaaaa.", -- 5 + ".........", -- 6 + + -- Level 3 + ".........", -- 0 + ".afagafa.", -- 1 + ".f.....f.", -- 2 + ".f.....f.", -- 3 + ".f.....f.", -- 4 + ".affaffa.", -- 5 + ".........", -- 6 + + -- Level 4 + "ccccccccc", -- 0 + "haaaaaaah", -- 1 + ".a.i.i.a.", -- 2 + ".a.....a.", -- 3 + ".a..j..a.", -- 4 + "kaaaaaaak", -- 5 + "lllllllll", -- 6 + + -- Level 5 + ".........", -- 0 + "ccccccccc", -- 1 + "haaaaaaah", -- 2 + ".a.....a.", -- 3 + "kaaaaaaak", -- 4 + "lllllllll", -- 5 + ".........", -- 6 + + -- Level 6 + ".........", -- 0 + ".........", -- 1 + "ccccccccc", -- 2 + "aaaaaaaaa", -- 3 + "lllllllll", -- 4 + ".........", -- 5 + ".........", -- 6 + + }, + }, -- House9x7 + + + + { + OriginData = + { + ExportName = "House9x9", + Name = "Desert 10", + GalleryName = "Desert", + GalleryIndex = "10", + ID = "114", + CreatorName = "xoft", + }, + Size = + { + x = 9, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 9, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 4, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmaaammm", -- 0 + "maaaaaaam", -- 1 + "maaaaaaam", -- 2 + "maaaaaaam", -- 3 + "maaaaaaam", -- 4 + "maaaaaaam", -- 5 + "maaaaaaam", -- 6 + "maaaaaaam", -- 7 + "mmmmmmmmm", -- 8 + + -- Level 1 + "...bcd...", -- 0 + ".aaaaaaa.", -- 1 + ".aaaaaaa.", -- 2 + ".aaaaaaa.", -- 3 + ".aaaaaaa.", -- 4 + ".aaaaaaa.", -- 5 + ".aaaaaaa.", -- 6 + ".aaaaaaa.", -- 7 + ".........", -- 8 + + -- Level 2 + ".........", -- 0 + ".aaaeaaa.", -- 1 + ".a.....a.", -- 2 + ".a.....a.", -- 3 + ".a.....a.", -- 4 + ".a.....a.", -- 5 + ".a.....a.", -- 6 + ".aaaaaaa.", -- 7 + ".........", -- 8 + + -- Level 3 + ".........", -- 0 + ".afagafa.", -- 1 + ".f.....f.", -- 2 + ".f.....f.", -- 3 + ".a.....a.", -- 4 + ".f.....f.", -- 5 + ".f.....f.", -- 6 + ".affaffa.", -- 7 + ".........", -- 8 + + -- Level 4 + "ccccccccc", -- 0 + "haaaaaaah", -- 1 + ".a.i.i.a.", -- 2 + ".a.....a.", -- 3 + ".a.....a.", -- 4 + ".a.....a.", -- 5 + ".a..j..a.", -- 6 + "kaaaaaaak", -- 7 + "lllllllll", -- 8 + + -- Level 5 + ".........", -- 0 + "ccccccccc", -- 1 + "haaaaaaah", -- 2 + ".a.....a.", -- 3 + ".a.....a.", -- 4 + ".a.....a.", -- 5 + "kaaaaaaak", -- 6 + "lllllllll", -- 7 + ".........", -- 8 + + -- Level 6 + ".........", -- 0 + ".........", -- 1 + "ccccccccc", -- 2 + "haaaaaaah", -- 3 + ".a.....a.", -- 4 + "kaaaaaaak", -- 5 + "lllllllll", -- 6 + ".........", -- 7 + ".........", -- 8 + + -- Level 7 + ".........", -- 0 + ".........", -- 1 + ".........", -- 2 + "ccccccccc", -- 3 + "aaaaaaaaa", -- 4 + "lllllllll", -- 5 + ".........", -- 6 + ".........", -- 7 + ".........", -- 8 + + }, + }, -- House9x9 + + + + { + OriginData = + { + ExportName = "House11x9", + Name = "Desert 11", + GalleryName = "Desert", + GalleryIndex = "11", + ID = "115", + CreatorName = "xoft", + }, + Size = + { + x = 11, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmaaammmm", -- 0 + "maaaaaaaaam", -- 1 + "maaaaaaaaam", -- 2 + "maaaaaaaaam", -- 3 + "maaaaaaaaam", -- 4 + "maaaaaaaaam", -- 5 + "maaaaaaaaam", -- 6 + "maaaaaaaaam", -- 7 + "mmmmmmmmmmm", -- 8 + + -- Level 1 + "....bcd....", -- 0 + ".aaaaaaaaa.", -- 1 + ".aaaaaaaaa.", -- 2 + ".aaaaaaaaa.", -- 3 + ".aaaaaaaaa.", -- 4 + ".aaaaaaaaa.", -- 5 + ".aaaaaaaaa.", -- 6 + ".aaaaaaaaa.", -- 7 + "...........", -- 8 + + -- Level 2 + "...........", -- 0 + ".aaaaeaaaa.", -- 1 + ".a.......a.", -- 2 + ".a.......a.", -- 3 + ".a.......a.", -- 4 + ".a.......a.", -- 5 + ".a.......a.", -- 6 + ".aaaaaaaaa.", -- 7 + "...........", -- 8 + + -- Level 3 + "...........", -- 0 + ".affagaffa.", -- 1 + ".f.......f.", -- 2 + ".f.......f.", -- 3 + ".a.......a.", -- 4 + ".f.......f.", -- 5 + ".f.......f.", -- 6 + ".afffafffa.", -- 7 + "...........", -- 8 + + -- Level 4 + "ccccccccccc", -- 0 + "haaaaaaaaah", -- 1 + ".a..i.i..a.", -- 2 + ".a.......a.", -- 3 + ".a.......a.", -- 4 + ".a.......a.", -- 5 + ".a...j...a.", -- 6 + "kaaaaaaaaak", -- 7 + "lllllllllll", -- 8 + + -- Level 5 + "...........", -- 0 + "ccccccccccc", -- 1 + "haaaaaaaaah", -- 2 + ".a.......a.", -- 3 + ".a.......a.", -- 4 + ".a.......a.", -- 5 + "kaaaaaaaaak", -- 6 + "lllllllllll", -- 7 + "...........", -- 8 + + -- Level 6 + "...........", -- 0 + "...........", -- 1 + "ccccccccccc", -- 2 + "haaaaaaaaah", -- 3 + ".a.......a.", -- 4 + "kaaaaaaaaak", -- 5 + "lllllllllll", -- 6 + "...........", -- 7 + "...........", -- 8 + + -- Level 7 + "...........", -- 0 + "...........", -- 1 + "...........", -- 2 + "ccccccccccc", -- 3 + "aaaaaaaaaaa", -- 4 + "lllllllllll", -- 5 + "...........", -- 6 + "...........", -- 7 + "...........", -- 8 + + }, + }, -- House11x9 + + + + { + OriginData = + { + ExportName = "House13x9", + Name = "Desert 12", + GalleryName = "Desert", + GalleryIndex = "12", + ID = "116", + CreatorName = "xoft", + }, + Size = + { + x = 13, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 13, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmaaammmmm", -- 0 + "maaaaaaaaaaam", -- 1 + "maaaaaaaaaaam", -- 2 + "maaaaaaaaaaam", -- 3 + "maaaaaaaaaaam", -- 4 + "maaaaaaaaaaam", -- 5 + "maaaaaaaaaaam", -- 6 + "maaaaaaaaaaam", -- 7 + "mmmmmmmmmmmmm", -- 8 + + -- Level 1 + ".....bcd.....", -- 0 + ".aaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaa.", -- 7 + ".............", -- 8 + + -- Level 2 + ".............", -- 0 + ".aaaaaeaaaaa.", -- 1 + ".a.........a.", -- 2 + ".a.........a.", -- 3 + ".a.........a.", -- 4 + ".a.........a.", -- 5 + ".a.........a.", -- 6 + ".aaaaaaaaaaa.", -- 7 + ".............", -- 8 + + -- Level 3 + ".............", -- 0 + ".afffagafffa.", -- 1 + ".f.........f.", -- 2 + ".f.........f.", -- 3 + ".a.........a.", -- 4 + ".f.........f.", -- 5 + ".f.........f.", -- 6 + ".affaffafffa.", -- 7 + ".............", -- 8 + + -- Level 4 + "ccccccccccccc", -- 0 + "haaaaaaaaaaah", -- 1 + ".a...i.i...a.", -- 2 + ".a.........a.", -- 3 + ".a.........a.", -- 4 + ".a.........a.", -- 5 + ".a..j..j...a.", -- 6 + "kaaaaaaaaaaak", -- 7 + "lllllllllllll", -- 8 + + -- Level 5 + ".............", -- 0 + "ccccccccccccc", -- 1 + "haaaaaaaaaaah", -- 2 + ".a.........a.", -- 3 + ".a.........a.", -- 4 + ".a.........a.", -- 5 + "kaaaaaaaaaaak", -- 6 + "lllllllllllll", -- 7 + ".............", -- 8 + + -- Level 6 + ".............", -- 0 + ".............", -- 1 + "ccccccccccccc", -- 2 + "haaaaaaaaaaah", -- 3 + ".a.........a.", -- 4 + "kaaaaaaaaaaak", -- 5 + "lllllllllllll", -- 6 + ".............", -- 7 + ".............", -- 8 + + -- Level 7 + ".............", -- 0 + ".............", -- 1 + ".............", -- 2 + "ccccccccccccc", -- 3 + "aaaaaaaaaaaaa", -- 4 + "lllllllllllll", -- 5 + ".............", -- 6 + ".............", -- 7 + ".............", -- 8 + + }, + }, -- House13x9 + + + + { + OriginData = + { + ExportName = "House15x9", + Name = "Desert 13", + GalleryName = "Desert", + GalleryIndex = "13", + ID = "118", + CreatorName = "xoft", + }, + Size = + { + x = 15, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 15, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmaaammmmmmm", -- 0 + "maaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaaam", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + + -- Level 1 + ".....bcd.......", -- 0 + ".aaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaaaa.", -- 7 + "...............", -- 8 + + -- Level 2 + "...............", -- 0 + ".aaaaaeaaaaaaa.", -- 1 + ".a...........a.", -- 2 + ".a...........a.", -- 3 + ".a...........a.", -- 4 + ".a...........a.", -- 5 + ".a...........a.", -- 6 + ".aaaaaaaaaaaaa.", -- 7 + "...............", -- 8 + + -- Level 3 + "...............", -- 0 + ".afffagaffaffa.", -- 1 + ".f...........f.", -- 2 + ".f...........f.", -- 3 + ".a...........a.", -- 4 + ".f...........f.", -- 5 + ".f...........f.", -- 6 + ".affaffaffaffa.", -- 7 + "...............", -- 8 + + -- Level 4 + "ccccccccccccccc", -- 0 + "haaaaaaaaaaaaah", -- 1 + ".a...i.i..i..a.", -- 2 + ".a...........a.", -- 3 + ".a...........a.", -- 4 + ".a...........a.", -- 5 + ".a..j..j..j..a.", -- 6 + "kaaaaaaaaaaaaak", -- 7 + "lllllllllllllll", -- 8 + + -- Level 5 + "...............", -- 0 + "ccccccccccccccc", -- 1 + "haaaaaaaaaaaaah", -- 2 + ".a...........a.", -- 3 + ".a...........a.", -- 4 + ".a...........a.", -- 5 + "kaaaaaaaaaaaaak", -- 6 + "lllllllllllllll", -- 7 + "...............", -- 8 + + -- Level 6 + "...............", -- 0 + "...............", -- 1 + "ccccccccccccccc", -- 2 + "haaaaaaaaaaaaah", -- 3 + ".a...........a.", -- 4 + "kaaaaaaaaaaaaak", -- 5 + "lllllllllllllll", -- 6 + "...............", -- 7 + "...............", -- 8 + + -- Level 7 + "...............", -- 0 + "...............", -- 1 + "...............", -- 2 + "ccccccccccccccc", -- 3 + "aaaaaaaaaaaaaaa", -- 4 + "lllllllllllllll", -- 5 + "...............", -- 6 + "...............", -- 7 + "...............", -- 8 + + }, + }, -- House15x9 + + + + { + OriginData = + { + ExportName = "HouseL14x12", + Name = "Desert 14", + GalleryName = "Desert", + GalleryIndex = "14", + ID = "124", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 14, + y = 8, + z = 12, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 7, + MaxZ = 12, + }, + Connectors = + { + { + Type = -1, + RelX = 5, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e:128: 3", -- sandstonestairs + "f: 64: 3", -- wooddoorblock + "g: 64: 1", -- wooddoorblock + "h:102: 0", -- glasspane + "i: 64: 9", -- wooddoorblock + "j: 64: 8", -- wooddoorblock + "k:128: 7", -- sandstonestairs + "l: 50: 3", -- torch + "m: 19: 0", -- sponge + "n: 50: 2", -- torch + "o: 50: 4", -- torch + "p:128: 6", -- sandstonestairs + "q: 50: 1", -- torch + "r:128: 5", -- sandstonestairs + "s:128: 4", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "mmmmaaammmmmmm", -- 0 + "maaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaam", -- 7 + "mmmmaaaaaaaaam", -- 8 + "mmmmmmaaaaaaam", -- 9 + "mmmmmmaaaaaaam", -- 10 + "mmmmmmmmmmmmmm", -- 11 + + -- Level 1 + "....bcd.......", -- 0 + ".aaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaaa.", -- 7 + "....beaaaaaaa.", -- 8 + "mmmmm.aaaaaaa.", -- 9 + "mmmmm.aaaaaaa.", -- 10 + "mmmmm.........", -- 11 + + -- Level 2 + "..............", -- 0 + ".aaaafaaaaaaa.", -- 1 + ".a..........a.", -- 2 + ".a..........a.", -- 3 + ".a..........a.", -- 4 + ".a..........a.", -- 5 + ".a..........a.", -- 6 + ".aaaaga.....a.", -- 7 + "......a.....a.", -- 8 + "mmmmm.a.....a.", -- 9 + "mmmmm.aaaaaaa.", -- 10 + "mmmmm.........", -- 11 + + -- Level 3 + "..............", -- 0 + ".ahhaiahhahha.", -- 1 + ".h..........h.", -- 2 + ".h..........h.", -- 3 + ".a..........a.", -- 4 + ".h..........h.", -- 5 + ".h..........h.", -- 6 + ".ahhaja.....a.", -- 7 + "......h.....h.", -- 8 + "mmmmm.h.....h.", -- 9 + "mmmmm.ahhahha.", -- 10 + "mmmmm.........", -- 11 + + -- Level 4 + "cccccccccccccc", -- 0 + "kaaaaaaaaaaaad", -- 1 + ".a..l.l.....ad", -- 2 + ".a..........ad", -- 3 + ".a.........nad", -- 4 + ".a..........ad", -- 5 + ".a..o.o.....ad", -- 6 + "paaaaaaq...nad", -- 7 + "eeeeeba.....ad", -- 8 + "mmmmmba.....ad", -- 9 + "mmmmmbaaaaaaad", -- 10 + "mmmmmbr.....sd", -- 11 + + -- Level 5 + "..............", -- 0 + "ccccccccccccd.", -- 1 + "kaaaaaaaaaaad.", -- 2 + ".a.........ad.", -- 3 + ".a.........ad.", -- 4 + ".a.........ad.", -- 5 + "paaaaaaa...ad.", -- 6 + "eeeeeeba...ad.", -- 7 + "......ba...ad.", -- 8 + "mmmmm.ba...ad.", -- 9 + "mmmmm.baaaaad.", -- 10 + "mmmmm.br...sd.", -- 11 + + -- Level 6 + "..............", -- 0 + "..............", -- 1 + "cccccccccccc..", -- 2 + "kaaaaaaaaaad..", -- 3 + ".a........ad..", -- 4 + "paaaaaaaa.ad..", -- 5 + "eeeeeeeea.ad..", -- 6 + ".......ba.ad..", -- 7 + ".......ba.ad..", -- 8 + "mmmmm..ba.ad..", -- 9 + "mmmmm..baaad..", -- 10 + "mmmmm..br.sd..", -- 11 + + -- Level 7 + "..............", -- 0 + "..............", -- 1 + "..............", -- 2 + "ccccccccccc...", -- 3 + "aaaaaaaaaad...", -- 4 + "eeeeeeeebad...", -- 5 + "........bad...", -- 6 + "........bad...", -- 7 + "........bad...", -- 8 + "mmmmm...bad...", -- 9 + "mmmmm...bad...", -- 10 + "mmmmm...bad...", -- 11 + + }, + }, -- HouseL14x12 + + + + { + OriginData = + { + ExportName = "House13x7", + Name = "Desert 15", + GalleryName = "Desert", + GalleryIndex = "15", + ID = "125", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 13, + y = 7, + z = 7, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 13, + MaxY = 6, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 6, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmaaammmmm", -- 0 + "maaaaaaaaaaam", -- 1 + "maaaaaaaaaaam", -- 2 + "maaaaaaaaaaam", -- 3 + "maaaaaaaaaaam", -- 4 + "maaaaaaaaaaam", -- 5 + "mmmmmmmmmmmmm", -- 6 + + -- Level 1 + ".....bcd.....", -- 0 + ".aaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaa.", -- 5 + ".............", -- 6 + + -- Level 2 + ".............", -- 0 + ".aaaaaeaaaaa.", -- 1 + ".a.........a.", -- 2 + ".a.........a.", -- 3 + ".a.........a.", -- 4 + ".aaaaaaaaaaa.", -- 5 + ".............", -- 6 + + -- Level 3 + ".............", -- 0 + ".afffagafffa.", -- 1 + ".f.........f.", -- 2 + ".f.........f.", -- 3 + ".f.........f.", -- 4 + ".affafffaffa.", -- 5 + ".............", -- 6 + + -- Level 4 + "ccccccccccccc", -- 0 + "haaaaaaaaaaah", -- 1 + ".a...i.i...a.", -- 2 + ".a.........a.", -- 3 + ".a..j...j..a.", -- 4 + "kaaaaaaaaaaak", -- 5 + "lllllllllllll", -- 6 + + -- Level 5 + ".............", -- 0 + "ccccccccccccc", -- 1 + "haaaaaaaaaaah", -- 2 + ".a.........a.", -- 3 + "kaaaaaaaaaaak", -- 4 + "lllllllllllll", -- 5 + ".............", -- 6 + + -- Level 6 + ".............", -- 0 + ".............", -- 1 + "ccccccccccccc", -- 2 + "aaaaaaaaaaaaa", -- 3 + "lllllllllllll", -- 4 + ".............", -- 5 + ".............", -- 6 + + }, + }, -- House13x7 + + + + { + OriginData = + { + ExportName = "House16x9", + Name = "Desert 16", + GalleryName = "Desert", + GalleryIndex = "16", + ID = "126", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 16, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = -1, + MinY = 0, + MinZ = 0, + MaxX = 16, + MaxY = 7, + MaxZ = 9, + }, + Connectors = + { + { + Type = -1, + RelX = 9, + RelY = 1, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b:128: 0", -- sandstonestairs + "c:128: 2", -- sandstonestairs + "d:128: 1", -- sandstonestairs + "e: 64: 3", -- wooddoorblock + "f:102: 0", -- glasspane + "g: 64: 9", -- wooddoorblock + "h:128: 7", -- sandstonestairs + "i: 50: 3", -- torch + "j: 50: 4", -- torch + "k:128: 6", -- sandstonestairs + "l:128: 3", -- sandstonestairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "mmmmmmmmaaammmmm", -- 0 + "maaaaaaaaaaaaaam", -- 1 + "maaaaaaaaaaaaaam", -- 2 + "maaaaaaaaaaaaaam", -- 3 + "maaaaaaaaaaaaaam", -- 4 + "maaaaaaaaaaaaaam", -- 5 + "maaaaaaaaaaaaaam", -- 6 + "maaaaaaaaaaaaaam", -- 7 + "mmmmmmmmmmmmmmmm", -- 8 + + -- Level 1 + "........bcd.....", -- 0 + ".aaaaaaaaaaaaaa.", -- 1 + ".aaaaaaaaaaaaaa.", -- 2 + ".aaaaaaaaaaaaaa.", -- 3 + ".aaaaaaaaaaaaaa.", -- 4 + ".aaaaaaaaaaaaaa.", -- 5 + ".aaaaaaaaaaaaaa.", -- 6 + ".aaaaaaaaaaaaaa.", -- 7 + "................", -- 8 + + -- Level 2 + "................", -- 0 + ".aaaaaaaaeaaaaa.", -- 1 + ".a............a.", -- 2 + ".a............a.", -- 3 + ".a............a.", -- 4 + ".a............a.", -- 5 + ".a............a.", -- 6 + ".aaaaaaaaaaaaaa.", -- 7 + "................", -- 8 + + -- Level 3 + "................", -- 0 + ".affafffagafffa.", -- 1 + ".f............f.", -- 2 + ".f............f.", -- 3 + ".a............a.", -- 4 + ".f............f.", -- 5 + ".f............f.", -- 6 + ".affaffafffaffa.", -- 7 + "................", -- 8 + + -- Level 4 + "cccccccccccccccc", -- 0 + "haaaaaaaaaaaaaah", -- 1 + ".a..i...i.i...a.", -- 2 + ".a............a.", -- 3 + ".a............a.", -- 4 + ".a............a.", -- 5 + ".a..j..j...j..a.", -- 6 + "kaaaaaaaaaaaaaak", -- 7 + "llllllllllllllll", -- 8 + + -- Level 5 + "................", -- 0 + "cccccccccccccccc", -- 1 + "haaaaaaaaaaaaaah", -- 2 + ".a............a.", -- 3 + ".a............a.", -- 4 + ".a............a.", -- 5 + "kaaaaaaaaaaaaaak", -- 6 + "llllllllllllllll", -- 7 + "................", -- 8 + + -- Level 6 + "................", -- 0 + "................", -- 1 + "cccccccccccccccc", -- 2 + "haaaaaaaaaaaaaah", -- 3 + ".a............a.", -- 4 + "kaaaaaaaaaaaaaak", -- 5 + "llllllllllllllll", -- 6 + "................", -- 7 + "................", -- 8 + + -- Level 7 + "................", -- 0 + "................", -- 1 + "................", -- 2 + "cccccccccccccccc", -- 3 + "aaaaaaaaaaaaaaaa", -- 4 + "llllllllllllllll", -- 5 + "................", -- 6 + "................", -- 7 + "................", -- 8 + + }, + }, -- House16x9 + + + + { + OriginData = + { + ExportName = "SingleField", + Name = "Desert 17", + GalleryName = "Desert", + GalleryIndex = "17", + ID = "127", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 10, + y = 3, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = -1, + MaxX = 10, + MaxY = 2, + MaxZ = 7, + }, + Connectors = + { + { + Type = -1, + RelX = 0, + RelY = 1, + RelZ = 3, + Direction = 4, -- X- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b: 60: 7", -- tilleddirt + "c: 8: 0", -- water + "d: 50: 5", -- torch + "e: 59: 7", -- crops + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaa", -- 0 + "aaaaaaaaaa", -- 1 + "aaaaaaaaaa", -- 2 + "aaaaaaaaaa", -- 3 + "aaaaaaaaaa", -- 4 + "aaaaaaaaaa", -- 5 + "aaaaaaaaaa", -- 6 + + -- Level 1 + "aaaaaaaaaa", -- 0 + "abbbbbbbba", -- 1 + "abbbbbbbba", -- 2 + "acccccccca", -- 3 + "abbbbbbbba", -- 4 + "abbbbbbbba", -- 5 + "aaaaaaaaaa", -- 6 + + -- Level 2 + "d........d", -- 0 + ".eeeeeeee.", -- 1 + ".eeeeeeee.", -- 2 + "..........", -- 3 + ".eeeeeeee.", -- 4 + ".eeeeeeee.", -- 5 + "d........d", -- 6 + + }, + }, -- SingleField + + + + { + OriginData = + { + ExportName = "RoofedWell", + Name = "Desert 43", + GalleryName = "Desert", + GalleryIndex = "43", + ID = "274", + CreatorName = "Aloe_vera", + }, + Size = + { + x = 7, + y = 14, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 6, + MaxY = 13, + MaxZ = 6, + }, + Connectors = + { + { + Type = 2, + RelX = 6, + RelY = 8, + RelZ = 3, + Direction = 5, -- X+ + }, + { + Type = 2, + RelX = 3, + RelY = 8, + RelZ = 6, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 0, + RelY = 8, + RelZ = 3, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 3, + RelY = 8, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 24: 0", -- sandstone + "c: 8: 0", -- water + "d: 12: 0", -- sand + "e: 4: 0", -- cobblestone + "f: 13: 0", -- gravel + "g:118: 3", -- cauldronblock + "h: 85: 0", -- fence + "i:128: 2", -- sandstonestairs + "j:128: 7", -- sandstonestairs + "k:128: 4", -- sandstonestairs + "l:128: 5", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:128: 3", -- sandstonestairs + }, + BlockData = + { + -- Level 0 + "aaaaaaa", -- 0 + "aaaaaaa", -- 1 + "aaaaaaa", -- 2 + "aaaaaaa", -- 3 + "aaaaaaa", -- 4 + "aaaaaaa", -- 5 + "aaaaaaa", -- 6 + + -- Level 1 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 2 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 3 + "aaaaaaa", -- 0 + "abbbbba", -- 1 + "abcccba", -- 2 + "abcccba", -- 3 + "abcccba", -- 4 + "abbbbba", -- 5 + "aaaaaaa", -- 6 + + -- Level 4 + "ddddddd", -- 0 + "dbbbbbd", -- 1 + "dbcccbd", -- 2 + "dbcccbd", -- 3 + "dbcccbd", -- 4 + "dbbbbbd", -- 5 + "ddddddd", -- 6 + + -- Level 5 + "ddddddd", -- 0 + "dbbbbbd", -- 1 + "dbcccbd", -- 2 + "dbcccbd", -- 3 + "dbcccbd", -- 4 + "dbbbbbd", -- 5 + "ddddddd", -- 6 + + -- Level 6 + "ddeeedd", -- 0 + "dbbbbbd", -- 1 + "ebcccbe", -- 2 + "ebcccbe", -- 3 + "ebcccbe", -- 4 + "dbbbbbd", -- 5 + "ddeeedd", -- 6 + + -- Level 7 + "ddfffdd", -- 0 + "dbbbbbd", -- 1 + "fbcccbf", -- 2 + "fbcccbf", -- 3 + "fbcccbf", -- 4 + "dbbbbbd", -- 5 + "ddfffdd", -- 6 + + -- Level 8 + ".......", -- 0 + ".bbbbb.", -- 1 + ".b...b.", -- 2 + ".b.g.b.", -- 3 + ".b...b.", -- 4 + ".bbbbb.", -- 5 + ".......", -- 6 + + -- Level 9 + ".......", -- 0 + ".h...h.", -- 1 + ".......", -- 2 + "...h...", -- 3 + ".......", -- 4 + ".h...h.", -- 5 + ".......", -- 6 + + -- Level 10 + ".......", -- 0 + ".h...h.", -- 1 + ".......", -- 2 + "...h...", -- 3 + ".......", -- 4 + ".h...h.", -- 5 + ".......", -- 6 + + -- Level 11 + "iiiiiii", -- 0 + "jbjjjbj", -- 1 + ".k...l.", -- 2 + ".k.h.l.", -- 3 + ".k...l.", -- 4 + "nbnnnbn", -- 5 + "ooooooo", -- 6 + + -- Level 12 + ".......", -- 0 + "iiiiiii", -- 1 + "jb...bj", -- 2 + ".b.h.b.", -- 3 + "nb...bn", -- 4 + "ooooooo", -- 5 + ".......", -- 6 + + -- Level 13 + ".......", -- 0 + ".......", -- 1 + "iiiiiii", -- 2 + "bbbbbbb", -- 3 + "ooooooo", -- 4 + ".......", -- 5 + ".......", -- 6 + + }, + }, -- RoofedWell + }, -- Pieces +} + + + + diff --git a/MCServer/crafting.txt b/MCServer/crafting.txt index 050186f66..b08a82f2f 100644 --- a/MCServer/crafting.txt +++ b/MCServer/crafting.txt @@ -85,6 +85,9 @@ BrickBlock = Brick, 1:1, 1:2, 2:1, 2:2 PolishedGranite, 4 = Granite, 1:1, 1:2, 2:1, 2:2 PolishedDiorite, 4 = Diorite, 1:1, 1:2, 2:1, 2:2 PolishedAndesite, 4 = Andesite, 1:1, 1:2, 2:1, 2:2 +Granite, 2 = Diorite, * | NetherQuartz, * +Diorite, 2 = Cobblestone, * | NetherQuartz, * +Andesite, 2 = Diorite, * | Cobblestone, * StoneBrick, 4 = Stone, 1:1, 1:2, 2:1, 2:2 BookShelf = Planks^-1, 1:1, 2:1, 3:1, 1:3, 2:3, 3:3 | Book, 1:2, 2:2, 3:2 Sandstone, 4 = Sand, 1:1, 1:2, 2:1, 2:2 diff --git a/MCServer/settings_apidump.ini b/MCServer/settings_apidump.ini deleted file mode 100644 index 80227a713..000000000 --- a/MCServer/settings_apidump.ini +++ /dev/null @@ -1,30 +0,0 @@ -; This settings file is used by the $/MakeLuaAPI.cmd script -; It is copied over settings.ini so that the APIDump plugin gets loaded upon server start - -[Server] -Description=MCServer - in C++! -MaxPlayers=100 -HardcoreEnabled=0 -Port=25565 -PortsIPv6= -DefaultViewDistance=10 - -[RCON] -Enabled=0 - -[Authentication] -Authenticate=1 -Server=session.minecraft.net -Address=/game/checkserver.jsp?user=%USERNAME%&serverId=%SERVERID% - -[Worlds] -; World=secondworld -DefaultWorld=world - -[Plugins] -Plugin=APIDump - -[DeadlockDetect] -Enabled=0 -IntervalSec=20 - diff --git a/MakeLuaAPI.cmd b/MakeLuaAPI.cmd deleted file mode 100644 index 90b8cf53e..000000000 --- a/MakeLuaAPI.cmd +++ /dev/null @@ -1,66 +0,0 @@ -@echo off -:: MakeLuaAPI.cmd -:: This script is run after the nightbuild to produce the Lua API documentation and upload it to a website. -:: It expects at least three environment variables set: ftpsite, ftpuser and ftppass, specifying the FTP site and login to use for the upload - - - - - -:: Check that we got all the environment vars needed for the upload: - -if "a%ftppass%" == "a" ( - echo You need to set FTP password in the ftppass environment variable to upload the files - goto end -) -if "a%ftpuser%" == "a" ( - echo You need to set FTP username in the ftpuser environment variable to upload the files - goto end -) -if "a%ftpsite%" == "a" ( - echo You need to set FTP server in the ftpsite environment variable to upload the files - goto end -) - - - - - -:: Create the API documentation by running the server and stopping it right after it starts: - -cd MCServer -copy /Y settings_apidump.ini settings.ini -echo api | MCServer -cd .. - - - - - -:: Upload the API to the web: - -ncftpput -p %ftppass% -u %ftpuser% -T temp_ -R %ftpsite% /LuaAPI MCServer/API/*.* -if errorlevel 1 goto haderror -echo Upload finished. - -goto end - - - - - -:haderror -echo an error was encountered, check command output above -pause -goto finished - - - - - -:end -if "a%1" == "a" pause - - - -:finished
\ No newline at end of file @@ -1,9 +1,9 @@ -MCServer [![Build Status](http://img.shields.io/travis/mc-server/MCServer/master.svg?style=flat)](https://travis-ci.org/mc-server/MCServer) [![Coverity Scan Build Status](https://img.shields.io/coverity/scan/1930.svg)](https://scan.coverity.com/projects/1930) [![weekly tips](http://img.shields.io/gratipay/cuberite_team.svg?style=flat)](http://gratipay.com/cuberite_team) +Cuberite [![Build Status](http://img.shields.io/travis/cuberite/cuberite/master.svg?style=flat)](https://travis-ci.org/cuberite/cuberite) [![Coverity Scan Build Status](https://img.shields.io/coverity/scan/1930.svg)](https://scan.coverity.com/projects/1930) [![weekly tips](http://img.shields.io/gratipay/cuberite.svg?style=flat)](http://gratipay.com/cuberite) ======== -MCServer is a Minecraft-compatible multiplayer game server that is written in C++ and designed to be efficient with memory and CPU, as well as having a flexible Lua Plugin API. MCServer is compatible with the vanilla Minecraft client. +Cuberite is a Minecraft-compatible multiplayer game server that is written in C++ and designed to be efficient with memory and CPU, as well as having a flexible Lua Plugin API. Cuberite is compatible with the vanilla Minecraft client. -MCServer can run on Windows, *nix and Android operating systems. This includes Android phones and tablets as well as Raspberry Pis. +Cuberite can run on Windows, *nix and Android operating systems. This includes Android phones and tablets as well as Raspberry Pis. We currently support Release 1.7 and 1.8 (not beta) Minecraft protocol versions. @@ -11,38 +11,38 @@ Subscribe to [the newsletter](http://newsletter.cuberite.org/subscribe.htm) for Installation ------------ -Hosted MCServer is available DIY on DigitalOcean: [![Install on DigitalOcean](http://doinstall.bearbin.net/button.svg)](http://doinstall.bearbin.net/install?url=https://github.com/mc-server/MCServer) and [Gamososm](https://gamocosm.com) also offers MCServer support. +Hosted Cuberite is available DIY on DigitalOcean: [![Install on DigitalOcean](http://doinstall.bearbin.net/button.svg)](http://doinstall.bearbin.net/install?url=https://github.com/cuberite/cuberite) and [Gamocosm](https://gamocosm.com) also offers Cuberite support. For Linux there is an easy installation method, just run this in your terminal: - curl -s https://raw.githubusercontent.com/mc-server/MCServer/master/easyinstall.sh | sh + curl -s https://raw.githubusercontent.com/cuberite/cuberite/master/easyinstall.sh | sh For Windows, you just need to download a file and extract it: - - [Windows 32 bit](http://builds.cuberite.org/job/MCServer%20Windows%20x86/lastSuccessfulBuild/artifact/Install/MCServer.zip) - - [Windows 64 bit](http://builds.cuberite.org/job/MCServer%20Windows%20x64/lastSuccessfulBuild/artifact/Install/MCServer.zip) + - [Windows 32 bit](http://builds.cuberite.org/job/Cuberite%20Windows%20x86%20Master/lastSuccessfulBuild/artifact/Install/Cuberite.zip) + - [Windows 64 bit](http://builds.cuberite.org/job/Cuberite%20Windows%20x64%20Master/lastSuccessfulBuild/artifact/Install/Cuberite.zip) For other operating systems you need to download and compile yourself. This can be done either manually, or with this automatic script: - bash -c "$(wget -O - https://raw.githubusercontent.com/mc-server/MCServer/master/compile.sh)" + bash -c "$(wget -O - https://raw.githubusercontent.com/cuberite/cuberite/master/compile.sh)" There is also an archive of binary builds on the buildserver: http://builds.cuberite.org -Compiling the server yourself has other benefits: you may get better performance performance (1.5-3x as fast) and it supports more operating systems. See the [COMPILING.md](https://github.com/mc-server/MCServer/blob/master/COMPILING.md) file for more details. +Compiling the server yourself has other benefits: you may get better performance performance (1.5-3x as fast) and it supports more operating systems. See the [COMPILING.md](https://github.com/cuberite/cuberite/blob/master/COMPILING.md) file for more details. Contributing ------------ -MCServer is licensed under the Apache License V2, and we welcome anybody to fork and submit a Pull Request back with their changes, and if you want to join as a permanent member we can add you to the team. +Cuberite is licensed under the Apache License V2, and we welcome anybody to fork and submit a Pull Request back with their changes, and if you want to join as a permanent member we can add you to the team. -Check out the [CONTRIBUTING.md](https://github.com/mc-server/MCServer/blob/master/CONTRIBUTING.md) file for more details. +Check out the [CONTRIBUTING.md](https://github.com/cuberite/cuberite/blob/master/CONTRIBUTING.md) file for more details. Other Stuff ----------- -For other stuff, including plugins and discussion, check out the [forums](http://forum.mc-server.org) and [Plugin API](http://mc-server.xoft.cz/LuaAPI/). +For other stuff, including plugins and discussion, check out the [forums](http://forum.mc-server.org) and [Plugin API](http://api-docs.cuberite.org). -Support Us on Gratipay: [![Support via Gratipay](http://img.shields.io/gittip/cuberite_team.svg)](https://www.gratipay.com/cuberite_team) +Support Us on Gratipay: [![gratipay shield](http://img.shields.io/gratipay/cuberite.svg)](https://www.gratipay.com/cuberite) -Travis CI: [![Build Status](http://img.shields.io/travis/mc-server/MCServer.svg)](https://travis-ci.org/mc-server/MCServer) +Travis CI: [![travis build status shield](http://img.shields.io/travis/cuberite/cuberite.svg)](https://travis-ci.org/cuberite/cuberite) @@ -5,5 +5,5 @@ config: packages: - git runcmd: - - cd /tmp && git clone https://github.com/cuberite/mcserver-ocean.git - - cd /tmp/mcserver-ocean && ./initialinstall.sh + - cd /tmp && git clone https://github.com/cuberite/cuberite-ocean.git + - cd /tmp/cuberite-ocean && ./initialinstall.sh diff --git a/compile.sh b/compile.sh index 1e965aecc..9ef6d6149 100755 --- a/compile.sh +++ b/compile.sh @@ -1,7 +1,7 @@ #|| goto :windows_detected # Do we already have a repo? -if [[ -d .git && -f easyinstall.sh && -f MakeLuaAPI.cmd ]]; then # A good enough indicator that we're in the MCServer git repo. +if [[ -d .git && -f easyinstall.sh && -f src/BlockArea.cpp ]]; then # A good enough indicator that we're in the MCServer git repo. cd ../ echo "MCServer repository detected. This should make the process faster, especially if you compiled before." fi diff --git a/docs/Cubeset file format.html b/docs/Cubeset file format.html new file mode 100644 index 000000000..916d723af --- /dev/null +++ b/docs/Cubeset file format.html @@ -0,0 +1,296 @@ +<html> +<head> +<title>Cubeset file format</title> +<link rel="stylesheet" type="text/css" href="style.css"> +</head> +<body> +<h2>Contents</h2> +<ul> +<li><a href="#abstract">Abstract - what and why</a></li> +<li><a href="#details">Detailed description of the format</a> +<ul> +<li><a href="#csmeta">Cubeset metadata</a></li> +<li><a href="#piece">Individual piece</a></li> +<li><a href="#piecemeta">Piece metadata</a></li> +</ul> +</li> +<li><a href="#example">Example</a></li> +</ul> +<hr> +<a name="abstract"><h2>Abstract - what and why</h2></a> +<p>We're seeing an increased need to store "prefabs" - little areas with predefined block contents, such as village houses or fortress rooms - in collections. We have one collection of village houses for the plains village, one collection for the desert village, one collection for the nether fortress... And there are plans in the future to use even more collections - trees, overworld fortresses, more village types and even custom structures. The point that they have in common is that they need to store not only the prefabs, but also metadata for those prefabs - how often they generate, how they connect together. There's even need for metadata for the entire collection, such as what the accepted biomes are, what block should village roads use, and various other generator parameters. So we need a file format that could store all this information together.</p> +<p>There are some existing formats available to consider first: +<ul> +<li><a href="http://minecraft.gamepedia.com/Schematic_file_format"><b>schematic</b></a> - file format native to MCEdit / Bukkit / WorldEdit communities. Can store the prefab, the block entities and regular entities, and any metadata. Cannot store multiple prefabs. No effort to read or write, there's already code to do that (except for the entities) in the server.</li> +<li><a href="http://dev.bukkit.org/bukkit-plugins/terrain-control/"><b>bob / bo2 / bo3</b></a> - file format created for prefabs in the Terrain Control mod. Can store the prefab and any metadata. Support for block entities and regular entities is unknown. Cannot store multiple prefabs. Medium difficulty for reading and writing, would need new parser and serializer. Unknown (but assumed true) whether the format truly supports any metadata.</li> +<li><a href="https://github.com/cuberite/cuberite/tree/master/src/Generating/Prefabs"><b>cpp</b></a> - export from our Gallery server directly into C++ source files. Can store the prefab and any metadata, block entities and regular entities currently not implemented but could be added. Very difficult for reading, writing already implemented. Only usable when compiling directly into the server. Can store multiple prefabs and metadata for the entire set.</li> +</ul> +Obviously none of these fully satisfy our needs, so we'll need to either extend one of them or create yet another one. Extending the .schematic file would mean that the exporter plugin would need to change most of the export code, which was deemed too unmaintainable. Because the bob format is not implemented at all, it wasn't even considered. The cpp format would have been a great candidate if it weren't so difficult to parse. However, it sparked an idea - something similar in form to the cpp format, but easily parsed. Since we already have the Lua interpreter, why not base the new format in Lua?</p> +<p> +With Lua, we could store any metadata for the prefabs, any additional information related to the entire set of prefabs. There's nothing stopping us from adding more items in a backward- and forward-compatible way. The prefabs can be stored very similar to the cpp format, an array of strings plus a charmap, or they can be stored externally in individual .schematic files and the Lua file would provide just the metadata. The server has already vast amounts of Lua-related support code that can be used for accessing the data. In the end this became the chosen solution. The format has been named "Cubeset" - a set of cube-based prefabs.</p> + +<hr/> + +<a name="details"><h2>Detailed description of the format</h2></a> +<p> +The Cubeset file has a .cubeset extension. Internally it is a Lua source file that provides a global value, Cubeset, which is a table containing the structured data. The loader checks the file's first 4 KiB to see if there is a "CubesetFormatVersion =" string in it, and if it is, the file is considered a Cubeset file and further loading is attempted. It is therefore crucial that tools producing this file format include this string as early as possible in the file.</p> +<p> +The top-level Cubeset table must contain at least two sub-tables: Metadata and Pieces. The Metadata table contains the metadata relevant to the entire set of prefabs in the file, the Pieces table contains the definitions and metadata for the individual prefabs. It is advised to make the Metadata table the first one, because it contains the signature used to identify the file ("CubesetFormatVersion ="). Apart from these two subtables the server ignores everything else.</p> + +<a name="csmeta"><h3>Cubeset metadata</h3></a> +<p> +The Cubeset.Metadata table is used to store metadata for the entire set of prefabs, and also for the format and version identification. It is a regular dictionary-style Lua table; the following elements are recognized: +<table> +<tr><th>Name</th><th>Type</th><th>Content</th></tr> +<tr><td>CubesetFormatVersion</td><td>number</td><td>This is the format identification and at the same time it specifies the version of the file. Currently the file version is 1.</td></tr> +<tr><td>ExportDate</td><td>string</td><td>The date when this file was exported, in the ISO format ("2015-06-16 13:34:03"). Inserted by <a href="https://github.com/madmaxoft/GalExport">GalExport</a> for versioning purposes. Ignored elsewhere.</td></tr> +<tr><td>ExternalSchematic</td><td>boolean</td><td>Flag inserted by <a href="https://github.com/madmaxoft/GalExport">GalExport</a> to indicate that the individual prefabs are stored in separate .schematic files. Ignored elsewhere.</td></tr> +</table> +We expect that the set of values recognized by the server will grow when the format is used for some time. All values are optional, except for the CubesetFormatVersion value which is strictly checked by the server. </p> + +<a name="piece"><h3>Individual piece</h3></a> +<p> +The Cubeset.Pieces table is an array containing individual prefabs. Each element describes a single prefab and its associated metadata. The following values are recognized: +<table> +<tr><th>Name</th><th>Type</th><th>Content</th></tr> +<tr><td>OriginData</td><td>table</td><td>Inserted by <a href="https://github.com/madmaxoft/GalExport">GalExport</a> to identify the gallery area from which the prefab is exported. Ignored elsewhere.</td></tr> +<tr><td>Hitbox</td><td>table</td><td>The relative coords of the prefab's hitbox (where the prefab is not allowed to overlap another prefab when generating). Members: MinX, MinY, MinZ, MaxX, MaxY, MaxZ, all numbers.</td></tr> +<tr><td>Connectors</td><td>table</td><td>Array of <a href="#conndef">connector definitions</a>. The table must be present for each prefab, even if the prefab doesn't have any connectors (use an empty table, then).</td></tr> +<tr><td>SchematicFileName</td><td>string</td><td>Name of the .schematic file that contains the block data for the prefab.</td></tr> +<tr><td>Size</td><td>table</td><td>Table containing the dimensions of the prefab, if it is inlined into the BlockData element. Contains three members, x, y, z, each is a number.</td></tr> +<tr><td>BlockData</td><td>table</td><td>Array of strings that are processed to produce the block data for the prefab. Each letter in the string corresponds to one block, the type of the block is translated through the BlockDefinitions table. The blocks are ordered YZX, that is, the X coord varies the most.</td></tr> +<tr><td>BlockDefinitions</td><td>table</td><td>Array of strings that defines the mapping of each letter in BlockData to a specific blocktype. Each string should have the format "Letter: BlockType: BlockMeta".</td></tr> +<tr><td>Metadata</td><td>table</td><td>Dictionary-style table of various per-prefab <a href="#piecemeta">metadata values</a>.</td></tr> +</table> +The prefab can either have the SchematicFileName element, in which case the specified schematic file is loaded as the block data, or it can have the Size, BlockData and BlockDefinitions elements, then the server parses the block data from those. If both data members are included, the SchematicFileName takes precedence and the server loads the data from the schematic file (note that this behavior may change, having both definitions is considered "undefined behavior").</p> +<a name="conndef"><p> +The connector definitions table is an array of tables, each element describing one connector. The following values are recognized: +<table> +<tr><th>Name</th><th>type</th><th>Content</th></tr> +<tr><td>Type</td><td>number</td><td>The connector's type. The piece generator will only connect the connectors of inverse types ('1'-type connector will connect only to '-1'-type connector).</td></tr> +<tr><td>RelX</td><td>number</td><td>X coord of the connector, relative to the prefab's zero point ({0, 0, 0} - the first block in the image).</td></tr> +<tr><td>RelY</td><td>number</td><td>Y coord of the connector, relative to the prefab's zero point ({0, 0, 0} - the first block in the image).</td></tr> +<tr><td>RelZ</td><td>number</td><td>Z coord of the connector, relative to the prefab's zero point ({0, 0, 0} - the first block in the image).</td></tr> +<tr><td>Direction</td><td>number</td><td>The direction in which the connector is facing. Corresponds to the eBlockFace constants: + <table> + <tr><th>Value</th><th>Direction</th></tr> + <tr><td>0</td><td>Y-</td></tr> + <tr><td>1</td><td>Y+</td></tr> + <tr><td>2</td><td>Z-</td></tr> + <tr><td>3</td><td>Z+</td></tr> + <tr><td>4</td><td>X-</td></tr> + <tr><td>5</td><td>X+</td></tr> + </table> +</td></tr> +</table> +If a connector definition is missing any of the fields, the server will not add the connector to the prefab upon loading. If a prefab doesn't have any connectors, it still needs to provide an empty Connectors table.</p></a> + +<a name="piecemeta"><h3>Piece metadata</h3></a> +<p> +Each piece contains additional metadata describing its properties. The server ignores metadata that it doesn't understand. The following values are recognized: +<table> +<tr><th>Name</th><th>Type</th><th>IsRequired</th><th>Contents</th></tr> +<tr><td>IsStarting</td><td>number</td><td>Yes</td><td>Zero means that the piece is a regular piece, nonzero means that the piece is a starting piece (the "seed" of the structure). Required even for cubesets that don't represent a piece-generator data (such as trees). </td></tr> +<tr><td>AllowedRotations</td><td>number</td><td> </td><td>Number representing a bitmask for which rotations the piece supports. Defaults to 0 (no rotations). Bit 0 (value 1) represents whether 1 counter-clockwise rotation is allowed, bit 1 (value 2) represents whether 2 rotations (180 degrees) are allowed, bit 2 (value 4) represents whether 1 clockwise rotation is allowed.</td></tr> +<tr><td>AddWeightIfSame</td><td>number</td><td> </td><td>How much weight (chance to generate) should the piece generator add to this piece when the parent piece is the same. It is possible to have negative values, meaning that the piece doesn't like repeating itself. Defaults to 0.</td></tr> +<tr><td>DefaultWeight</td><td>number</td><td> </td><td>How much weight (chance to generate) does the piece have by default, without any modifiers (AddWeightIfSame, DepthWeight). Defaults to 0.</td></tr> +<tr><td>DepthWeight</td><td>string</td><td> </td><td>Override for DefaultWeight for specific depth (in the tree used by the piece generator). String in the format "Depth1:Weight1|Depth2:Weight2|...". Each unlisted depth gets the DefaultWeight. Defaults to empty string (no override).</td></tr> +<tr><td>MergeStrategy</td><td>string</td><td> </td><td>Which merge strategy should be used when drawing the prefab into the world. String representation of one of the cBlockArea:eMergeStrategy constants: "msOverwrite", "msFillAir", "msImprint", "msLake", "msSpongePrint", "msDifference", "msSimpleCompare", "msMask". Defaults to "msSpongePrint".</td></tr> +<tr><td>MoveToGround</td><td>number</td><td> </td><td>Zero means that the piece will stay where generated by the piece generator, nonzero means that the piece will be moved Y-wise so that its first connector will be on the top block of the existing terrain. Useful for village houses. Defaults to 0.</td></tr> +<tr><td>ShouldExpandFloor</td><td>number</td><td> </td><td>Nonzero means that the prefab's lowest slice will be repeated downwards until it hits a solid block, effectively creating a foundation for the piece. Useful for nether fortresses and village houses. Defaults to 0.</td></tr> +</table> +Each value that should be a number also allows a string that represents a number. This makes it easier for automated exporters - they can export all values as strings.</p> + +<hr/> + +<a name="example"><h2>Example</h2></a> +<p> +The following example defines a cubeset with two pieces. The first piece is inlined into the cubeset file, the second piece uses an external schematic file.</p> +<pre> +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + }, + + Pieces = + { + -- The following piece was exported from the Gallery server by the GalExport plugin in the "cubeset" format: + { + OriginData = + { + ExportName = "DarkCorridor", + Name = "Nether 3", + GalleryName = "Nether", + GalleryIndex = "3", + ID = "30", + CreatorName = "STR_Warrior", + }, + Size = + { + x = 14, + y = 6, + z = 5, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 13, + MaxY = 5, + MaxZ = 4, + }, + Connectors = + { + { + Type = 1, + RelX = 0, + RelY = 1, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = 1, + RelX = 13, + RelY = 1, + RelZ = 2, + Direction = 5, -- X+ + }, + { + Type = -1, + RelX = 0, + RelY = 1, + RelZ = 2, + Direction = 4, -- X- + }, + { + Type = -1, + RelX = 13, + RelY = 1, + RelZ = 2, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "0", + ["AddWeightIfSame"] = "0", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a:112: 0", -- netherbrick + "b:113: 0", -- netherbrickfence + "c:114: 2", -- netherbrickstairs + "d:114: 3", -- netherbrickstairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaaaaaaaaaaa", -- 0 + "aaaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaaa", -- 3 + "aaaaaaaaaaaaaa", -- 4 + + -- Level 1 + "aaaaaaaaaaaaaa", -- 0 + "..............", -- 1 + "..............", -- 2 + "..............", -- 3 + "aaaaaaaaaaaaaa", -- 4 + + -- Level 2 + "aabaaaaaaaabaa", -- 0 + "..............", -- 1 + "..............", -- 2 + "..............", -- 3 + "aabaaaaaaaabaa", -- 4 + + -- Level 3 + "aabaaaaaaaabaa", -- 0 + "..............", -- 1 + "..............", -- 2 + "..............", -- 3 + "aabaaaaaaaabaa", -- 4 + + -- Level 4 + "aabaaaaaaaabaa", -- 0 + "..............", -- 1 + "..............", -- 2 + "..............", -- 3 + "aabaaaaaaaabaa", -- 4 + + -- Level 5 + "cccccccccccccc", -- 0 + "aaaaaaaaaaaaaa", -- 1 + "aaaaaaaaaaaaaa", -- 2 + "aaaaaaaaaaaaaa", -- 3 + "dddddddddddddd", -- 4 + }, + }, -- DarkCorridor + + -- The following piece was exported from the Gallery server by the GalExport plugin in the "cubesetext" format: + { + OriginData = + { + ExportName = "DoublePlantBed", + Name = "Plains 5", + GalleryName = "Plains", + GalleryIndex = "5", + ID = "20", + CreatorName = "tonibm1999", + }, + Size = + { + x = 15, + y = 8, + z = 9, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 7, + MaxZ = 8, + }, + Connectors = + { + { + Type = -1, + RelX = 7, + RelY = 2, + RelZ = 8, + Direction = 3, -- Z+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["IsStarting"] = "0", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + SchematicFile = "PlainsVillage/20.schematic", + }, -- DoublePlantBed + } +} +</pre> + +</body> +</html> diff --git a/docs/style.css b/docs/style.css new file mode 100644 index 000000000..74419d8da --- /dev/null +++ b/docs/style.css @@ -0,0 +1,12 @@ +table +{ + border: 1px outset; + border-spacing: 0px; + border-collapse: separate; +} + +td, th +{ + border: 1px inset +} + diff --git a/easyinstall.sh b/easyinstall.sh index 9eef1abcc..71d99312b 100755 --- a/easyinstall.sh +++ b/easyinstall.sh @@ -14,4 +14,4 @@ echo "Downloading precompiled binaries." curl -s $DOWNLOADURL | tar -xzf - echo "Done." -echo "MCServer is now installed, run using 'cd MCServer; ./MCServer'." +echo "Cuberite is now installed, run using 'cd MCServer; ./MCServer'." diff --git a/src/Bindings/BindingsProcessor.lua b/src/Bindings/BindingsProcessor.lua index fba992082..a398f5026 100644 --- a/src/Bindings/BindingsProcessor.lua +++ b/src/Bindings/BindingsProcessor.lua @@ -98,7 +98,9 @@ local function OutputLuaStateHelpers(a_Package) f:write("// This file expects to be included form inside the cLuaState class definition\n") f:write("\n\n\n\n\n") for _, item in ipairs(types) do - f:write("void Push(" .. item.name .. " * a_Value);\n") + if not(g_HasCustomPushImplementation[item.name]) then + f:write("void Push(" .. item.name .. " * a_Value);\n") + end end for _, item in ipairs(types) do f:write("bool GetStackValue(int a_StackPos, Ptr" .. item.lname .. " & a_ReturnedVal);\n") diff --git a/src/Bindings/LuaState.cpp b/src/Bindings/LuaState.cpp index 232432a99..a0fdecb8b 100644 --- a/src/Bindings/LuaState.cpp +++ b/src/Bindings/LuaState.cpp @@ -211,23 +211,31 @@ void cLuaState::AddPackagePath(const AString & a_PathVariable, const AString & a -bool cLuaState::LoadFile(const AString & a_FileName) +bool cLuaState::LoadFile(const AString & a_FileName, bool a_LogWarnings) { ASSERT(IsValid()); // Load the file: int s = luaL_loadfile(m_LuaState, a_FileName.c_str()); - if (ReportErrors(s)) + if (s != 0) { - LOGWARNING("Can't load %s because of an error in file %s", m_SubsystemName.c_str(), a_FileName.c_str()); + if (a_LogWarnings) + { + LOGWARNING("Can't load %s because of a load error in file %s: %d (%s)", m_SubsystemName.c_str(), a_FileName.c_str(), s, lua_tostring(m_LuaState, -1)); + } + lua_pop(m_LuaState, 1); return false; } // Execute the globals: s = lua_pcall(m_LuaState, 0, LUA_MULTRET, 0); - if (ReportErrors(s)) + if (s != 0) { - LOGWARNING("Error in %s in file %s", m_SubsystemName.c_str(), a_FileName.c_str()); + if (a_LogWarnings) + { + LOGWARNING("Can't load %s because of an initialization error in file %s: %d (%s)", m_SubsystemName.c_str(), a_FileName.c_str(), s, lua_tostring(m_LuaState, -1)); + } + lua_pop(m_LuaState, 1); return false; } @@ -446,6 +454,18 @@ void cLuaState::Push(const cPlayer * a_Player) +void cLuaState::Push(const cLuaState::cRef & a_Ref) +{ + ASSERT(IsValid()); + + lua_rawgeti(m_LuaState, LUA_REGISTRYINDEX, static_cast<int>(a_Ref)); + m_NumCurrentFunctionArgs += 1; +} + + + + + void cLuaState::Push(const HTTPRequest * a_Request) { ASSERT(IsValid()); @@ -765,14 +785,17 @@ bool cLuaState::GetStackValue(int a_StackPos, double & a_ReturnedVal) -bool cLuaState::GetStackValue(int a_StackPos, float & a_ReturnedVal) +bool cLuaState::GetStackValue(int a_StackPos, eBlockFace & a_ReturnedVal) { - if (lua_isnumber(m_LuaState, a_StackPos)) + if (!lua_isnumber(m_LuaState, a_StackPos)) { - a_ReturnedVal = static_cast<float>(tolua_tonumber(m_LuaState, a_StackPos, a_ReturnedVal)); - return true; + return false; } - return false; + a_ReturnedVal = static_cast<eBlockFace>(Clamp( + static_cast<int>(tolua_tonumber(m_LuaState, a_StackPos, a_ReturnedVal)), + static_cast<int>(BLOCK_FACE_MIN), static_cast<int>(BLOCK_FACE_MAX)) + ); + return true; } @@ -796,6 +819,50 @@ bool cLuaState::GetStackValue(int a_StackPos, eWeather & a_ReturnedVal) +bool cLuaState::GetStackValue(int a_StackPos, float & a_ReturnedVal) +{ + if (lua_isnumber(m_LuaState, a_StackPos)) + { + a_ReturnedVal = static_cast<float>(tolua_tonumber(m_LuaState, a_StackPos, a_ReturnedVal)); + return true; + } + return false; +} + + + + + +cLuaState::cStackValue cLuaState::WalkToValue(const AString & a_Name) +{ + // There needs to be at least one value on the stack: + ASSERT(lua_gettop(m_LuaState) > 0); + + // Iterate over path and replace the top of the stack with the walked element + lua_pushvalue(m_LuaState, -1); // Copy the stack value into the "working area" + auto path = StringSplit(a_Name, "."); + for (const auto & elem: path) + { + // If the value is not a table, bail out (error): + if (!lua_istable(m_LuaState, -1)) + { + lua_pop(m_LuaState, 1); + return cStackValue(); + } + + // Get the next part of the path: + lua_getfield(m_LuaState, -1, elem.c_str()); + + // Remove the previous value from the stack (keep only the new one): + lua_remove(m_LuaState, -2); + } // for elem - path[] + return std::move(cStackValue(*this)); +} + + + + + bool cLuaState::CallFunction(int a_NumResults) { ASSERT (m_NumCurrentFunctionArgs >= 0); // A function must be pushed to stack first diff --git a/src/Bindings/LuaState.h b/src/Bindings/LuaState.h index 8a3411d30..cc8214646 100644 --- a/src/Bindings/LuaState.h +++ b/src/Bindings/LuaState.h @@ -78,11 +78,14 @@ public: bool IsValid(void) const {return (m_Ref != LUA_REFNIL); } /** Allows to use this class wherever an int (i. e. ref) is to be used */ - operator int(void) const { return m_Ref; } - + explicit operator int(void) const { return m_Ref; } + protected: cLuaState * m_LuaState; int m_Ref; + + // Remove the copy-constructor: + cRef(const cRef &) = delete; } ; @@ -98,6 +101,12 @@ public: { } + cTableRef(const cRef & a_TableRef, const char * a_FnName) : + m_TableRef(static_cast<int>(a_TableRef)), + m_FnName(a_FnName) + { + } + int GetTableRef(void) const { return m_TableRef; } const char * GetFnName(void) const { return m_FnName; } } ; @@ -111,6 +120,61 @@ public: static const cRet Return; // Use this constant to delimit function args from return values for cLuaState::Call() + /** A RAII class for values pushed onto the Lua stack. + Will pop the value off the stack in the destructor. */ + class cStackValue + { + public: + cStackValue(void): + m_LuaState(nullptr) + { + } + + cStackValue(cLuaState & a_LuaState): + m_LuaState(a_LuaState) + { + m_StackLen = lua_gettop(a_LuaState); + } + + cStackValue(cStackValue && a_Src): + m_LuaState(nullptr), + m_StackLen(-1) + { + std::swap(m_LuaState, a_Src.m_LuaState); + std::swap(m_StackLen, a_Src.m_StackLen); + } + + ~cStackValue() + { + if (m_LuaState != nullptr) + { + auto top = lua_gettop(m_LuaState); + ASSERT(m_StackLen == top); + lua_pop(m_LuaState, 1); + } + } + + void Set(cLuaState & a_LuaState) + { + m_LuaState = a_LuaState; + m_StackLen = lua_gettop(a_LuaState); + } + + bool IsValid(void) const + { + return (m_LuaState != nullptr); + } + + protected: + lua_State * m_LuaState; + + int m_StackLen; + + // Remove the copy-constructor: + cStackValue(const cStackValue &) = delete; + }; + + /** Creates a new instance. The LuaState is not initialized. a_SubsystemName is used for reporting problems in the console, it is "plugin %s" for plugins, or "LuaScript" for the cLuaScript template @@ -151,10 +215,9 @@ public: void AddPackagePath(const AString & a_PathVariable, const AString & a_Path); /** Loads the specified file - Returns false and logs a warning to the console if not successful (but the LuaState is kept open). - m_SubsystemName is displayed in the warning log message. - */ - bool LoadFile(const AString & a_FileName); + Returns false and optionally logs a warning to the console if not successful (but the LuaState is kept open). + m_SubsystemName is displayed in the warning log message. */ + bool LoadFile(const AString & a_FileName, bool a_LogWarnings = true); /** Returns true if a_FunctionName is a valid Lua function that can be called */ bool HasFunction(const char * a_FunctionName); @@ -169,6 +232,7 @@ public: void Push(const char * a_Value); void Push(const cItems & a_Items); void Push(const cPlayer * a_Player); + void Push(const cRef & a_Ref); void Push(const HTTPRequest * a_Request); void Push(const HTTPTemplateRequest * a_Request); void Push(const Vector3d & a_Vector); @@ -178,22 +242,24 @@ public: // Push a simple value onto the stack (keep alpha-sorted): void Push(bool a_Value); + void Push(cEntity * a_Entity); + void Push(cLuaServerHandle * a_ServerHandle); + void Push(cLuaTCPLink * a_TCPLink); + void Push(cLuaUDPEndpoint * a_UDPEndpoint); void Push(double a_Value); void Push(int a_Value); void Push(void * a_Ptr); void Push(std::chrono::milliseconds a_time); - void Push(cLuaServerHandle * a_ServerHandle); - void Push(cLuaTCPLink * a_TCPLink); - void Push(cLuaUDPEndpoint * a_UDPEndpoint); // GetStackValue() retrieves the value at a_StackPos, if it is a valid type. If not, a_Value is unchanged. // Returns whether value was changed - // Enum values are clamped to their allowed range. + // Enum values are checked for their allowed values and fail if the value is not assigned. bool GetStackValue(int a_StackPos, AString & a_Value); bool GetStackValue(int a_StackPos, bool & a_Value); bool GetStackValue(int a_StackPos, cPluginManager::CommandResult & a_Result); bool GetStackValue(int a_StackPos, cRef & a_Ref); bool GetStackValue(int a_StackPos, double & a_Value); + bool GetStackValue(int a_StackPos, eBlockFace & a_Value); bool GetStackValue(int a_StackPos, eWeather & a_Value); bool GetStackValue(int a_StackPos, float & a_ReturnedVal); @@ -202,21 +268,53 @@ public: bool GetStackValue(int a_StackPos, T & a_ReturnedVal, typename std::enable_if<std::is_integral<T>::value>::type * unused = nullptr) { UNUSED(unused); - if (lua_isnumber(m_LuaState, a_StackPos)) + if (!lua_isnumber(m_LuaState, a_StackPos)) // Also accepts strings representing a number: http://pgl.yoyo.org/luai/i/lua_isnumber { - lua_Number Val = tolua_tonumber(m_LuaState, a_StackPos, a_ReturnedVal); - if (Val > std::numeric_limits<T>::max()) - { - return false; - } - if (Val < std::numeric_limits<T>::min()) - { - return false; - } - a_ReturnedVal = static_cast<T>(Val); - return true; + return false; + } + lua_Number Val = lua_tonumber(m_LuaState, a_StackPos); + if (Val > std::numeric_limits<T>::max()) + { + return false; + } + if (Val < std::numeric_limits<T>::min()) + { + return false; + } + a_ReturnedVal = static_cast<T>(Val); + return true; + } + + /** Pushes the named value in the table at the top of the stack. + a_Name may be a path containing multiple table levels, such as "_G.cChatColor.Blue". + If the value is found, it is pushed on top of the stack and the returned cStackValue is valid. + If the value is not found, the stack is unchanged and the returned cStackValue is invalid. */ + cStackValue WalkToValue(const AString & a_Name); + + /** Retrieves the named value in the table at the top of the Lua stack. + a_Name may be a path containing multiple table levels, such as "_G.cChatColor.Blue". + Returns true if the value was successfully retrieved, false on error. */ + template <typename T> bool GetNamedValue(const AString & a_Name, T & a_Value) + { + auto stk = WalkToValue(a_Name); + if (!stk.IsValid()) + { + // Name not found + return false; } - return false; + return GetStackValue(-1, a_Value); + } + + /** Retrieves the named global value. a_Name may be a path containing multiple table levels, such as "_G.cChatColor.Blue". + Returns true if the value was successfully retrieved, false on error. */ + template <typename T> bool GetNamedGlobal(const AString & a_Name, T & a_Value) + { + // Push the globals table onto the stack and make it RAII-removed: + lua_getglobal(m_LuaState, "_G"); + cStackValue stk(*this); + + // Get the named global: + return GetNamedValue(a_Name, a_Value); } // Include the auto-generated Push and GetStackValue() functions: @@ -229,12 +327,12 @@ public: template <typename FnT, typename... Args> bool Call(const FnT & a_Function, Args &&... args) { - if (!PushFunction(a_Function)) + if (!PushFunction(std::forward<const FnT &>(a_Function))) { // Pushing the function failed return false; } - return PushCallPop(args...); + return PushCallPop(std::forward<Args>(args)...); } /** Retrieves a list of values from the Lua stack, starting at the specified index. */ @@ -343,10 +441,10 @@ protected: /** Variadic template recursor: More params to push. Push them and recurse. */ template <typename T, typename... Args> - inline bool PushCallPop(T a_Param, Args &&... args) + inline bool PushCallPop(T && a_Param, Args &&... args) { - Push(a_Param); - return PushCallPop(args...); + Push(std::forward<T>(a_Param)); + return PushCallPop(std::forward<Args>(args)...); } /** Variadic template terminator: If there's nothing more to push, but return values to collect, call the function and collect the returns. */ @@ -363,7 +461,7 @@ protected: } // Collect the return values: - GetStackValues(-NumReturns, args...); + GetStackValues(-NumReturns, std::forward<Args>(args)...); lua_pop(m_LuaState, NumReturns); // All successful: diff --git a/src/Bindings/ManualBindings_World.cpp b/src/Bindings/ManualBindings_World.cpp index ddbebce78..d9590de33 100644 --- a/src/Bindings/ManualBindings_World.cpp +++ b/src/Bindings/ManualBindings_World.cpp @@ -490,7 +490,7 @@ static int tolua_cWorld_ScheduleTask(lua_State * tolua_S) auto task = std::make_shared<cLuaScheduledWorldTask>(*Plugin, FnRef); Plugin->AddResettable(task); - World->ScheduleTask(DelayTicks, task); + World->ScheduleTask(DelayTicks, static_cast<cWorld::cTaskPtr>(task)); return 0; } 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/BiomeDef.h b/src/BiomeDef.h index cda12556a..32d3a5cfd 100644 --- a/src/BiomeDef.h +++ b/src/BiomeDef.h @@ -104,6 +104,28 @@ enum EMCSBiome biMaxVariantBiome = biNumVariantBiomes - 1, // The maximum biome value } ; +// tolua_end + + + + + +/** Hash for EMCSBiome, so that it can be used in std::unordered_map etc. */ +struct BiomeHasher +{ +public: + std::size_t operator() (const EMCSBiome a_Biome) const + { + return static_cast<std::size_t>(a_Biome); + } +}; + + + + + +// tolua_begin + /** Translates a biome string to biome enum. Takes either a number or a biome alias (built-in). Returns biInvalidBiome on failure. */ extern EMCSBiome StringToBiome(const AString & a_BiomeString); diff --git a/src/BlockArea.cpp b/src/BlockArea.cpp index 938351207..eb25d624d 100644 --- a/src/BlockArea.cpp +++ b/src/BlockArea.cpp @@ -336,6 +336,12 @@ void cBlockArea::Create(int a_SizeX, int a_SizeY, int a_SizeZ, int a_DataTypes) ); return; } + + // Warn if the height is too much, but proceed with the creation: + if (a_SizeY > cChunkDef::Height) + { + LOGWARNING("Creating a cBlockArea with height larger than world height (%d). Continuing, but the area may misbehave.", a_SizeY); + } Clear(); int BlockCount = a_SizeX * a_SizeY * a_SizeZ; @@ -540,7 +546,7 @@ bool cBlockArea::Write(cForEachChunkProvider * a_ForEachChunkProvider, int a_Min else if (a_MinBlockY > cChunkDef::Height - m_Size.y) { LOGWARNING("%s: MinBlockY + m_SizeY more than chunk height, adjusting to chunk height", __FUNCTION__); - a_MinBlockY = cChunkDef::Height - m_Size.y; + a_MinBlockY = std::max(cChunkDef::Height - m_Size.y, 0); } return a_ForEachChunkProvider->WriteBlockArea(*this, a_MinBlockX, a_MinBlockY, a_MinBlockZ, a_DataTypes); diff --git a/src/BlockEntities/ChestEntity.h b/src/BlockEntities/ChestEntity.h index 8ead8bda0..6eb72fc77 100644 --- a/src/BlockEntities/ChestEntity.h +++ b/src/BlockEntities/ChestEntity.h @@ -55,7 +55,7 @@ private: int m_NumActivePlayers; /** cItemGrid::cListener overrides: */ - virtual void OnSlotChanged(cItemGrid * a_Grid, int a_SlotNum) + virtual void OnSlotChanged(cItemGrid * a_Grid, int a_SlotNum) override { UNUSED(a_SlotNum); ASSERT(a_Grid == &m_Contents); diff --git a/src/BlockEntities/HopperEntity.cpp b/src/BlockEntities/HopperEntity.cpp index 203f47534..662212c4d 100644 --- a/src/BlockEntities/HopperEntity.cpp +++ b/src/BlockEntities/HopperEntity.cpp @@ -507,7 +507,7 @@ bool cHopperEntity::MoveItemsFromSlot(cBlockEntityWithItems & a_Entity, int a_Sl auto PreviousCount = m_Contents.GetSlot(i).m_ItemCount; m_Contents.ChangeSlotCount(i, 1); - if (PreviousCount == m_Contents.GetSlot(i).m_ItemCount + 1) + if (PreviousCount + 1 == m_Contents.GetSlot(i).m_ItemCount) { // Successfully added a new item. (Failure condition consistutes: stack full) return true; diff --git a/src/BlockInfo.cpp b/src/BlockInfo.cpp index 04d214b01..c0ae5e945 100644 --- a/src/BlockInfo.cpp +++ b/src/BlockInfo.cpp @@ -204,7 +204,6 @@ void cBlockInfo::Initialize(cBlockInfoArray & a_Info) a_Info[E_BLOCK_ENDER_CHEST ].m_Transparent = true; a_Info[E_BLOCK_END_PORTAL ].m_Transparent = true; a_Info[E_BLOCK_END_PORTAL_FRAME ].m_Transparent = true; - a_Info[E_BLOCK_FARMLAND ].m_Transparent = true; a_Info[E_BLOCK_FENCE ].m_Transparent = true; a_Info[E_BLOCK_FENCE_GATE ].m_Transparent = true; a_Info[E_BLOCK_FIRE ].m_Transparent = true; diff --git a/src/Blocks/BlockBed.h b/src/Blocks/BlockBed.h index 57ffebfca..905c0ea76 100644 --- a/src/Blocks/BlockBed.h +++ b/src/Blocks/BlockBed.h @@ -36,11 +36,6 @@ public: a_Pickups.push_back(cItem(E_ITEM_BED, 1, 0)); } - virtual bool CanDirtGrowGrass(NIBBLETYPE a_Meta) override - { - return true; - } - // Bed specific helper functions static NIBBLETYPE RotationToMetaData(double a_Rotation) diff --git a/src/Blocks/BlockButton.h b/src/Blocks/BlockButton.h index 154cd610e..3558729bb 100644 --- a/src/Blocks/BlockButton.h +++ b/src/Blocks/BlockButton.h @@ -19,15 +19,35 @@ public: virtual void OnUse(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ) override { + NIBBLETYPE Meta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ); + + double x(a_BlockX); + double y(a_BlockY); + double z(a_BlockZ); + + // If button is already on do nothing + if (Meta & 0x08) + { + return; + } + // Set p the ON bit to on - NIBBLETYPE Meta = (a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) | 0x08); + Meta |= 0x08; a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta); a_WorldInterface.WakeUpSimulators(a_BlockX, a_BlockY, a_BlockZ); - a_WorldInterface.GetBroadcastManager().BroadcastSoundEffect("random.click", (double)a_BlockX, (double)a_BlockY, (double)a_BlockZ, 0.5f, (Meta & 0x08) ? 0.6f : 0.5f); + a_WorldInterface.GetBroadcastManager().BroadcastSoundEffect("random.click", x, y, z, 0.5f, 0.6f); // Queue a button reset (unpress) - a_ChunkInterface.QueueSetBlock(a_BlockX, a_BlockY, a_BlockZ, m_BlockType, (a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) & 0x07), m_BlockType == E_BLOCK_STONE_BUTTON ? 20 : 30, m_BlockType, a_WorldInterface); + int delay = (m_BlockType == E_BLOCK_STONE_BUTTON) ? 20 : 30; + + a_ChunkInterface.QueueSetBlock(a_BlockX, a_BlockY, a_BlockZ, m_BlockType, (a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) & 0x07), delay, m_BlockType, a_WorldInterface); + + a_Player->GetWorld()->ScheduleTask(delay, [x, y, z](cWorld & a_World) + { + a_World.BroadcastSoundEffect("random.click", x, y, z, 0.5f, 0.5f); + }); + } diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h index 32512a2ef..3d671d218 100644 --- a/src/Blocks/BlockDirt.h +++ b/src/Blocks/BlockDirt.h @@ -3,6 +3,7 @@ #include "BlockHandler.h" #include "../FastRandom.h" +#include "../BlockInfo.h" #include "Root.h" #include "Bindings/PluginManager.h" @@ -39,19 +40,6 @@ public: { return; } - - // Grass becomes dirt if there is something on top of it: - if (a_RelY < cChunkDef::Height - 1) - { - BLOCKTYPE Above; - NIBBLETYPE AboveMeta; - a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY + 1, a_RelZ, Above, AboveMeta); - if (!cBlockInfo::GetHandler(Above)->CanDirtGrowGrass(AboveMeta)) - { - a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL); - return; - } - } // Make sure that there is enough light at the source block to spread if (!a_Chunk.GetWorld()->IsChunkLighted(a_Chunk.GetPosX(), a_Chunk.GetPosZ())) @@ -59,10 +47,24 @@ public: a_Chunk.GetWorld()->QueueLightChunk(a_Chunk.GetPosX(), a_Chunk.GetPosZ()); return; } - else if ((a_RelY < cChunkDef::Height - 1) && std::max(a_Chunk.GetBlockLight(a_RelX, a_RelY + 1, a_RelZ), a_Chunk.GetTimeAlteredLight(a_Chunk.GetSkyLight(a_RelX, a_RelY + 1, a_RelZ))) < 9) + else if ((a_RelY < cChunkDef::Height - 1)) { + BLOCKTYPE above = a_Chunk.GetBlock(a_RelX, a_RelY + 1, a_RelZ); + + // Grass turns back to dirt when the block above is not transparent + if (!cBlockInfo::IsTransparent(above)) + { + a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL); + return; + } + + NIBBLETYPE light = std::max(a_Chunk.GetBlockLight(a_RelX, a_RelY + 1, a_RelZ), a_Chunk.GetTimeAlteredLight(a_Chunk.GetSkyLight(a_RelX, a_RelY + 1, a_RelZ))); // Source block is not bright enough to spread - return; + if (light < 9) + { + return; + } + } // Grass spreads to adjacent dirt blocks: @@ -95,11 +97,10 @@ public: // Not a regular dirt block continue; } - - BLOCKTYPE AboveDest; - NIBBLETYPE AboveMeta; - Chunk->GetBlockTypeMeta(BlockX, BlockY + 1, BlockZ, AboveDest, AboveMeta); - if (cBlockInfo::GetHandler(AboveDest)->CanDirtGrowGrass(AboveMeta)) + BLOCKTYPE above = a_Chunk.GetBlock(BlockX, BlockY + 1, BlockZ); + NIBBLETYPE light = std::max(a_Chunk.GetBlockLight(BlockX, BlockY + 1, BlockZ), a_Chunk.GetTimeAlteredLight(a_Chunk.GetSkyLight(BlockX, BlockY + 1, BlockZ))); + // Grass does not spread to blocks with a light level less than 5 + if ((light > 4) && cBlockInfo::IsTransparent(above)) { if (!cRoot::Get()->GetPluginManager()->CallHookBlockSpread(*Chunk->GetWorld(), Chunk->GetPosX() * cChunkDef::Width + BlockX, BlockY, Chunk->GetPosZ() * cChunkDef::Width + BlockZ, ssGrassSpread)) { diff --git a/src/Blocks/BlockDoor.h b/src/Blocks/BlockDoor.h index 9332e6728..4773e6f0a 100644 --- a/src/Blocks/BlockDoor.h +++ b/src/Blocks/BlockDoor.h @@ -242,7 +242,7 @@ public: if ((Meta & 0x08) != 0) { // The coords are pointing at the top part of the door - if (a_BlockX > 0) + if (a_BlockY > 0) { NIBBLETYPE DownMeta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY - 1, a_BlockZ); return static_cast<NIBBLETYPE>((DownMeta & 0x07) | 0x08 | (Meta << 4)); diff --git a/src/Blocks/BlockFarmland.h b/src/Blocks/BlockFarmland.h index 23a7392da..8d43632ff 100644 --- a/src/Blocks/BlockFarmland.h +++ b/src/Blocks/BlockFarmland.h @@ -65,13 +65,22 @@ public: } } - virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ) override + + virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) override { + // Don't care about any neighbor but the one above us (fix recursion loop in #2213): + if (a_WhichNeighbor != BLOCK_FACE_YP) + { + return; + } + + // Don't care about anything if we're at the top of the world: if (a_BlockY >= cChunkDef::Height) { return; } + // Check whether we should revert to dirt: BLOCKTYPE UpperBlock = a_ChunkInterface.GetBlock(a_BlockX, a_BlockY + 1, a_BlockZ); if (cBlockInfo::FullyOccupiesVoxel(UpperBlock)) { @@ -79,11 +88,13 @@ public: } } + virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override { a_Pickups.Add(E_BLOCK_DIRT, 1, 0); // Reset meta } + bool IsWaterInNear(cChunk & a_Chunk, int a_RelX, int a_RelY, int a_RelZ) { if (a_Chunk.GetWorld()->IsWeatherWetAt(a_RelX, a_RelZ)) diff --git a/src/Blocks/BlockFire.h b/src/Blocks/BlockFire.h index 2038df94b..3f75455da 100644 --- a/src/Blocks/BlockFire.h +++ b/src/Blocks/BlockFire.h @@ -121,6 +121,20 @@ public: } } + int PortalHeight = MaxY - Y - 1; + int PortalWidth = XZP - XZM + 1; + if ((PortalHeight < a_WorldInterface.GetMinNetherPortalHeight()) || (PortalHeight > a_WorldInterface.GetMaxNetherPortalHeight())) + { + // The portal isn't high enough, or is too high + return; + } + + if ((PortalWidth < a_WorldInterface.GetMinNetherPortalWidth()) || (PortalWidth > a_WorldInterface.GetMaxNetherPortalWidth())) + { + // The portal isn't wide enough, or is too wide + return; + } + for (int Height = Y + 1; Height <= MaxY - 1; Height++) // Loop through boundary to set portal blocks { for (int Width = XZM; Width <= XZP; Width++) @@ -217,6 +231,11 @@ public: return (FoundFrameZP && FoundFrameZM); } + + virtual bool DoesIgnoreBuildCollision(cPlayer * a_Player, NIBBLETYPE a_Meta) override + { + return true; + } }; diff --git a/src/Blocks/BlockFluid.h b/src/Blocks/BlockFluid.h index 2823baedc..58b3ce042 100644 --- a/src/Blocks/BlockFluid.h +++ b/src/Blocks/BlockFluid.h @@ -49,12 +49,6 @@ public: } super::Check(a_ChunkInterface, a_PluginInterface, a_RelX, a_RelY, a_RelZ, a_Chunk); } - - - virtual bool CanDirtGrowGrass(NIBBLETYPE a_Meta) override - { - return false; - } } ; diff --git a/src/Blocks/BlockHandler.cpp b/src/Blocks/BlockHandler.cpp index 452cc94a5..412fc3aeb 100644 --- a/src/Blocks/BlockHandler.cpp +++ b/src/Blocks/BlockHandler.cpp @@ -389,12 +389,12 @@ void cBlockHandler::OnDestroyedByPlayer(cChunkInterface & a_ChunkInterface, cWor void cBlockHandler::OnPlaced(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) { // Notify the neighbors - NeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ - 1); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ + 1); + NeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY, a_BlockZ, BLOCK_FACE_XP); + NeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY, a_BlockZ, BLOCK_FACE_XM); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ, BLOCK_FACE_YP); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ, BLOCK_FACE_YM); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ - 1, BLOCK_FACE_ZP); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ + 1, BLOCK_FACE_ZM); } @@ -404,29 +404,30 @@ void cBlockHandler::OnPlaced(cChunkInterface & a_ChunkInterface, cWorldInterface void cBlockHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ) { // Notify the neighbors - NeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ - 1); - NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ + 1); + NeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY, a_BlockZ, BLOCK_FACE_XP); + NeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY, a_BlockZ, BLOCK_FACE_XM); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ, BLOCK_FACE_YP); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ, BLOCK_FACE_YM); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ - 1, BLOCK_FACE_ZP); + NeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ + 1, BLOCK_FACE_ZM); } -void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ) +void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, int a_NeighborX, int a_NeighborY, int a_NeighborZ, eBlockFace a_WhichNeighbor) { - if ((a_BlockY >= 0) && (a_BlockY < cChunkDef::Height)) + if ((a_NeighborY >= 0) && (a_NeighborY < cChunkDef::Height)) { - cBlockInfo::GetHandler(a_ChunkInterface.GetBlock(a_BlockX, a_BlockY, a_BlockZ))->OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ); + cBlockInfo::GetHandler(a_ChunkInterface.GetBlock(a_NeighborX, a_NeighborY, a_NeighborZ))->OnNeighborChanged(a_ChunkInterface, a_NeighborX, a_NeighborY, a_NeighborZ, a_WhichNeighbor); } } + void cBlockHandler::ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) { // Setting the meta to a_BlockMeta keeps most textures. The few other blocks have to override this. @@ -512,15 +513,6 @@ bool cBlockHandler::CanBeAt(cChunkInterface & a_ChunkInterface, int a_BlockX, in -bool cBlockHandler::CanDirtGrowGrass(NIBBLETYPE a_Meta) -{ - return ((cBlockInfo::IsTransparent(m_BlockType)) || (cBlockInfo::IsOneHitDig(m_BlockType))); -} - - - - - bool cBlockHandler::IsUseable() { return false; diff --git a/src/Blocks/BlockHandler.h b/src/Blocks/BlockHandler.h index 4dec0dc95..1b357c3f1 100644 --- a/src/Blocks/BlockHandler.h +++ b/src/Blocks/BlockHandler.h @@ -56,13 +56,19 @@ public: /// Called before a block gets destroyed / replaced with air virtual void OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ); - /// Called when a direct neighbor of this block has been changed (The position is the own position, not the neighbor position) - virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ) {} - - /// Notifies all neighbors of the given block about a change - static void NeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ); - - /// Called while the player diggs the block. + /** Called when a direct neighbor of this block has been changed (The position is the block's own position, not the changing neighbor's position) + a_WhichNeighbor indicates which neighbor has changed. For example, BLOCK_FACE_YP meant the neighbor above has changed. + BLOCK_FACE_NONE means that it is a neighbor not directly adjacent (diagonal, etc.) */ + virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) {} + + /** Notifies the specified neighbor that the current block has changed. + a_NeighborXYZ coords are the coords of the neighbor + a_WhichNeighbor specifies which neighbor (relative to a_NeighborXYZ) has changed. + For example BLOCK_FACE_YP means that the block at {a_NeighborX, a_NeighborY + 1, a_NeighborZ} has changed. + BLOCK_FACE_NONE means that it is a neighbor not directly adjacent (diagonal, etc.) */ + static void NeighborChanged(cChunkInterface & a_ChunkInterface, int a_NeighborX, int a_NeighborY, int a_NeighborZ, eBlockFace a_WhichNeighbor); + + /** Called when the player starts digging the block. */ virtual void OnDigging(cChunkInterface & cChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ) {} /// Called if the user right clicks the block and the block is useable @@ -83,9 +89,6 @@ public: /// Checks if the block can stay at the specified relative coords in the chunk virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk); - - /** Can the dirt under this block grow to grass? */ - virtual bool CanDirtGrowGrass(NIBBLETYPE a_Meta); /** Checks if the block can be placed at this point. Default: CanBeAt(...) diff --git a/src/Blocks/BlockLeaves.h b/src/Blocks/BlockLeaves.h index 5c9283979..2368eab7b 100644 --- a/src/Blocks/BlockLeaves.h +++ b/src/Blocks/BlockLeaves.h @@ -75,10 +75,14 @@ public: } - virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ) override + virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) override { + // Unset 0x8 bit so this block gets checked for decay: NIBBLETYPE Meta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ); - a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta & 0x7); // Unset 0x8 bit so it gets checked for decay + if ((Meta & 0x08) != 0) + { + a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta & 0x7); + } } diff --git a/src/Blocks/BlockPiston.cpp b/src/Blocks/BlockPiston.cpp index d9f4913d8..75f8621a7 100644 --- a/src/Blocks/BlockPiston.cpp +++ b/src/Blocks/BlockPiston.cpp @@ -179,7 +179,7 @@ void cBlockPistonHandler::ExtendPiston(int a_BlockX, int a_BlockY, int a_BlockZ, a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, pistonBlock, pistonMeta | 0x8); a_World->SetBlock(extx, exty, extz, E_BLOCK_PISTON_EXTENSION, pistonMeta | (IsSticky(pistonBlock) ? 8 : 0), false); - a_World->ScheduleTask(PISTON_TICK_DELAY, std::make_shared<cWorld::cTaskSendBlockToAllPlayers>(ScheduledBlocks)); + a_World->ScheduleTask(PISTON_TICK_DELAY, static_cast<cWorld::cTaskPtr>(std::make_shared<cWorld::cTaskSendBlockToAllPlayers>(ScheduledBlocks))); } @@ -229,7 +229,7 @@ void cBlockPistonHandler::RetractPiston(int a_BlockX, int a_BlockY, int a_BlockZ std::vector<Vector3i> ScheduledBlocks; ScheduledBlocks.push_back(Vector3i(a_BlockX, a_BlockY, a_BlockZ)); ScheduledBlocks.push_back(Vector3i(tempx, tempy, tempz)); - a_World->ScheduleTask(PISTON_TICK_DELAY + 1, std::make_shared<cWorld::cTaskSendBlockToAllPlayers>(ScheduledBlocks)); + a_World->ScheduleTask(PISTON_TICK_DELAY + 1, static_cast<cWorld::cTaskPtr>(std::make_shared<cWorld::cTaskSendBlockToAllPlayers>(ScheduledBlocks))); return; } } @@ -239,7 +239,7 @@ void cBlockPistonHandler::RetractPiston(int a_BlockX, int a_BlockY, int a_BlockZ std::vector<Vector3i> ScheduledBlocks; ScheduledBlocks.push_back(Vector3i(a_BlockX, a_BlockY, a_BlockZ)); - a_World->ScheduleTask(PISTON_TICK_DELAY + 1, std::make_shared<cWorld::cTaskSendBlockToAllPlayers>(ScheduledBlocks)); + a_World->ScheduleTask(PISTON_TICK_DELAY + 1, static_cast<cWorld::cTaskPtr>(std::make_shared<cWorld::cTaskSendBlockToAllPlayers>(ScheduledBlocks))); } diff --git a/src/Blocks/BlockRail.h b/src/Blocks/BlockRail.h index eecd07006..7fb910e8c 100644 --- a/src/Blocks/BlockRail.h +++ b/src/Blocks/BlockRail.h @@ -47,15 +47,14 @@ public: super::OnPlaced(a_ChunkInterface, a_WorldInterface, a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta); // Alert diagonal rails - OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY + 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY + 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ + 1); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ - 1); - - OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY - 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY - 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ + 1); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ - 1); + OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY + 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY + 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ + 1, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ - 1, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY - 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY - 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ + 1, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ - 1, BLOCK_FACE_NONE); } @@ -64,19 +63,18 @@ public: super::OnDestroyed(a_ChunkInterface, a_WorldInterface, a_BlockX, a_BlockY, a_BlockZ); // Alert diagonal rails - OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY + 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY + 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ + 1); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ - 1); - - OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY - 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY - 1, a_BlockZ); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ + 1); - OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ - 1); + OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY + 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY + 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ + 1, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY + 1, a_BlockZ - 1, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX + 1, a_BlockY - 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX - 1, a_BlockY - 1, a_BlockZ, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ + 1, BLOCK_FACE_NONE); + OnNeighborChanged(a_ChunkInterface, a_BlockX, a_BlockY - 1, a_BlockZ - 1, BLOCK_FACE_NONE); } - virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ) override + virtual void OnNeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) override { NIBBLETYPE Meta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ); if (IsUnstable(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ) && (Meta != FindMeta(a_ChunkInterface, a_BlockX, a_BlockY, a_BlockZ))) diff --git a/src/Blocks/BlockSlab.h b/src/Blocks/BlockSlab.h index 9b3fad72e..58e85013e 100644 --- a/src/Blocks/BlockSlab.h +++ b/src/Blocks/BlockSlab.h @@ -88,12 +88,6 @@ public: return true; } - - virtual bool CanDirtGrowGrass(NIBBLETYPE a_Meta) override - { - return ((a_Meta & 0x8) != 0); - } - /// Returns true if the specified blocktype is one of the slabs handled by this handler static bool IsAnySlabType(BLOCKTYPE a_BlockType) diff --git a/src/Blocks/BlockStairs.h b/src/Blocks/BlockStairs.h index d396204e0..7ef69d2ec 100644 --- a/src/Blocks/BlockStairs.h +++ b/src/Blocks/BlockStairs.h @@ -62,12 +62,6 @@ public: } - virtual bool CanDirtGrowGrass(NIBBLETYPE a_Meta) override - { - return true; - } - - static NIBBLETYPE RotationToMetaData(double a_Rotation) { a_Rotation += 90 + 45; // So its not aligned with axis diff --git a/src/Blocks/WorldInterface.h b/src/Blocks/WorldInterface.h index 44c118195..826df7034 100644 --- a/src/Blocks/WorldInterface.h +++ b/src/Blocks/WorldInterface.h @@ -55,6 +55,18 @@ public: /** Returns true if it is raining, stormy or snowing at the specified location. This takes into account biomes. */ virtual bool IsWeatherWetAt(int a_BlockX, int a_BlockZ) = 0; + /** Returns or sets the minumim or maximum netherportal width */ + virtual int GetMinNetherPortalWidth(void) const = 0; + virtual int GetMaxNetherPortalWidth(void) const = 0; + virtual void SetMinNetherPortalWidth(int a_NewMinWidth) = 0; + virtual void SetMaxNetherPortalWidth(int a_NewMaxWidth) = 0; + + /** Returns or sets the minumim or maximum netherportal height */ + virtual int GetMinNetherPortalHeight(void) const = 0; + virtual int GetMaxNetherPortalHeight(void) const = 0; + virtual void SetMinNetherPortalHeight(int a_NewMinHeight) = 0; + virtual void SetMaxNetherPortalHeight(int a_NewMaxHeight) = 0; + /** Returns the world height at the specified coords; waits for the chunk to get loaded / generated */ virtual int GetHeight(int a_BlockX, int a_BlockZ) = 0; diff --git a/src/BoundingBox.cpp b/src/BoundingBox.cpp index 6b163b01e..64e3c02d2 100644 --- a/src/BoundingBox.cpp +++ b/src/BoundingBox.cpp @@ -5,6 +5,7 @@ #include "Globals.h" #include "BoundingBox.h" #include "Defines.h" +#include "SelfTests.h" @@ -18,6 +19,11 @@ static class SelfTest_BoundingBox public: SelfTest_BoundingBox(void) { + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&Test), "Bounding box intersections"); + } + + static void Test(void) + { Vector3d Min(1, 1, 1); Vector3d Max(2, 2, 2); Vector3d LineDefs[] = @@ -41,7 +47,7 @@ public: bool res = cBoundingBox::CalcLineIntersection(Min, Max, Line1, Line2, LineCoeff, Face); if (res != Results[i]) { - fprintf(stderr, "LineIntersection({%.02f, %.02f, %.02f}, {%.02f, %.02f, %.02f}) -> %d, %.05f, %d\n", + LOGERROR("LineIntersection({%.02f, %.02f, %.02f}, {%.02f, %.02f, %.02f}) -> %d, %.05f, %d", Line1.x, Line1.y, Line1.z, Line2.x, Line2.y, Line2.z, res ? 1 : 0, LineCoeff, Face @@ -52,7 +58,7 @@ public: { if (LineCoeff != LineCoeffs[i]) { - fprintf(stderr, "LineIntersection({%.02f, %.02f, %.02f}, {%.02f, %.02f, %.02f}) -> %d, %.05f, %d\n", + LOGERROR("LineIntersection({%.02f, %.02f, %.02f}, {%.02f, %.02f, %.02f}) -> %d, %.05f, %d", Line1.x, Line1.y, Line1.z, Line2.x, Line2.y, Line2.z, res ? 1 : 0, LineCoeff, Face @@ -61,9 +67,8 @@ public: } } } // for i - LineDefs[] - fprintf(stderr, "BoundingBox selftest complete.\n"); } -} gTest; +} g_BoundingBoxTest; #endif diff --git a/src/ByteBuffer.cpp b/src/ByteBuffer.cpp index dc757d8f6..f50e3845b 100644 --- a/src/ByteBuffer.cpp +++ b/src/ByteBuffer.cpp @@ -8,6 +8,7 @@ #include "ByteBuffer.h" #include "Endianness.h" #include "OSSupport/IsThread.h" +#include "SelfTests.h" @@ -55,18 +56,18 @@ Unfortunately it is very slow, so it is disabled even for regular DEBUG builds. #ifdef SELF_TEST -/// Self-test of the VarInt-reading and writing code +/** Self-test of the VarInt-reading and writing code */ static class cByteBufferSelfTest { public: cByteBufferSelfTest(void) { - TestRead(); - TestWrite(); - TestWrap(); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestRead), "ByteBuffer read"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestWrite), "ByteBuffer write"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestWrap), "ByteBuffer wraparound"); } - void TestRead(void) + static void TestRead(void) { cByteBuffer buf(50); buf.Write("\x05\xac\x02\x00", 4); @@ -78,7 +79,7 @@ public: assert_test(buf.ReadVarInt(v3) && (v3 == 0)); } - void TestWrite(void) + static void TestWrite(void) { cByteBuffer buf(50); buf.WriteVarInt32(5); @@ -90,7 +91,7 @@ public: assert_test(memcmp(All.data(), "\x05\xac\x02\x00", All.size()) == 0); } - void TestWrap(void) + static void TestWrap(void) { cByteBuffer buf(3); for (int i = 0; i < 1000; i++) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 429087ae2..fcafdbe87 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,6 +61,7 @@ SET (SRCS RCONServer.cpp Root.cpp Scoreboard.cpp + SelfTests.cpp Server.cpp SetChunkData.cpp SpawnPrepare.cpp @@ -134,6 +135,7 @@ SET (HDRS RCONServer.h Root.h Scoreboard.h + SelfTests.h Server.h SetChunkData.h SettingsRepositoryInterface.h diff --git a/src/Chunk.cpp b/src/Chunk.cpp index 39d32d48e..b6ec39294 100644 --- a/src/Chunk.cpp +++ b/src/Chunk.cpp @@ -411,7 +411,7 @@ void cChunk::WriteBlockArea(cBlockArea & a_Area, int a_MinBlockX, int a_MinBlock int OffZ = BlockStartZ - m_PosZ * cChunkDef::Width; int BaseX = BlockStartX - a_MinBlockX; int BaseZ = BlockStartZ - a_MinBlockZ; - int SizeY = a_Area.GetSizeY(); + int SizeY = std::min(a_Area.GetSizeY(), cChunkDef::Height - a_MinBlockY); // TODO: Improve this by not calling FastSetBlock() and doing the processing here // so that the heightmap is touched only once for each column. @@ -1018,20 +1018,26 @@ void cChunk::GrowMelonPumpkin(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_Bl // Check if there's soil under the neighbor. We already know the neighbors are valid. Place produce if ok BLOCKTYPE Soil; - UnboundedRelGetBlock(a_RelX + x, a_RelY - 1, a_RelZ + z, Soil, BlockMeta); + VERIFY(UnboundedRelGetBlock(a_RelX + x, a_RelY - 1, a_RelZ + z, Soil, BlockMeta)); switch (Soil) { case E_BLOCK_DIRT: case E_BLOCK_GRASS: case E_BLOCK_FARMLAND: { - // DEBUG: This is here to catch FS #349 - melons growing over other crops. - LOG("Growing melon / pumpkin overwriting %s, growing on %s", + // Place a randomly-facing produce: + NIBBLETYPE Meta = (ProduceType == E_BLOCK_MELON) ? 0 : static_cast<NIBBLETYPE>(a_TickRandom.randInt(4) % 4); + LOGD("Growing melon / pumpkin at {%d, %d, %d} (<%d, %d> from stem), overwriting %s, growing on top of %s, meta %d", + a_RelX + x + m_PosX * cChunkDef::Width, a_RelY, a_RelZ + z + m_PosZ * cChunkDef::Width, + x, z, ItemTypeToString(BlockType[CheckType]).c_str(), - ItemTypeToString(Soil).c_str() + ItemTypeToString(Soil).c_str(), + Meta ); - // Place a randomly-facing produce: - UnboundedRelFastSetBlock(a_RelX + x, a_RelY, a_RelZ + z, ProduceType, (NIBBLETYPE)(a_TickRandom.randInt(4) % 4)); + VERIFY(UnboundedRelFastSetBlock(a_RelX + x, a_RelY, a_RelZ + z, ProduceType, Meta)); + auto Absolute = RelativeToAbsolute(Vector3i{a_RelX + x, a_RelY, a_RelZ + z}, m_PosX, m_PosZ); + cChunkInterface ChunkInterface(this->GetWorld()->GetChunkMap()); + cBlockHandler::NeighborChanged(ChunkInterface, Absolute.x, Absolute.y - 1, Absolute.z, BLOCK_FACE_YP); break; } } diff --git a/src/ClientHandle.h b/src/ClientHandle.h index 27acc4d37..302de5a77 100644 --- a/src/ClientHandle.h +++ b/src/ClientHandle.h @@ -23,7 +23,7 @@ #include <array> - +#include <atomic> // fwd: @@ -447,7 +447,7 @@ private: // TODO: Add Kicking here as well } ; - eState m_State; + std::atomic<eState> m_State; /** m_State needs to be locked in the Destroy() function so that the destruction code doesn't run twice on two different threads */ cCriticalSection m_CSDestroyingState; diff --git a/src/CompositeChat.cpp b/src/CompositeChat.cpp index 5d6c028ab..353835039 100644 --- a/src/CompositeChat.cpp +++ b/src/CompositeChat.cpp @@ -6,6 +6,7 @@ #include "Globals.h" #include "CompositeChat.h" #include "ClientHandle.h" +#include "SelfTests.h" @@ -19,16 +20,14 @@ class SelfTest_CompositeChat public: SelfTest_CompositeChat(void) { - fprintf(stderr, "cCompositeChat self test...\n"); - TestParser1(); - TestParser2(); - TestParser3(); - TestParser4(); - TestParser5(); - fprintf(stderr, "cCompositeChat self test finished.\n"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser1), "CompositeChat parser test 1"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser2), "CompositeChat parser test 2"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser3), "CompositeChat parser test 3"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser4), "CompositeChat parser test 4"); + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser5), "CompositeChat parser test 5"); } - void TestParser1(void) + static void TestParser1(void) { cCompositeChat Msg; Msg.ParseText("Testing @2color codes and http://links parser"); @@ -44,7 +43,7 @@ public: assert_test(Parts[3]->m_Style == "@2"); } - void TestParser2(void) + static void TestParser2(void) { cCompositeChat Msg; Msg.ParseText("@3Advanced stuff: @5overriding color codes and http://links.with/@4color-in-them handling"); @@ -60,7 +59,7 @@ public: assert_test(Parts[3]->m_Style == "@5"); } - void TestParser3(void) + static void TestParser3(void) { cCompositeChat Msg; Msg.ParseText("http://links.starting the text"); @@ -72,7 +71,7 @@ public: assert_test(Parts[1]->m_Style == ""); } - void TestParser4(void) + static void TestParser4(void) { cCompositeChat Msg; Msg.ParseText("links finishing the text: http://some.server"); @@ -84,7 +83,7 @@ public: assert_test(Parts[1]->m_Style == ""); } - void TestParser5(void) + static void TestParser5(void) { cCompositeChat Msg; Msg.ParseText("http://only.links"); diff --git a/src/Defines.h b/src/Defines.h index b167f69e3..f3b742e09 100644 --- a/src/Defines.h +++ b/src/Defines.h @@ -29,16 +29,16 @@ enum -/// Block face constants, used in PlayerDigging and PlayerBlockPlacement packets and bbox collision calc +/** Block face constants, used in PlayerDigging and PlayerBlockPlacement packets and bbox collision calc */ enum eBlockFace { BLOCK_FACE_NONE = -1, // Interacting with no block face - swinging the item in the air - BLOCK_FACE_XM = 4, // Interacting with the X- face of the block - BLOCK_FACE_XP = 5, // Interacting with the X+ face of the block - BLOCK_FACE_YM = 0, // Interacting with the Y- face of the block - BLOCK_FACE_YP = 1, // Interacting with the Y+ face of the block - BLOCK_FACE_ZM = 2, // Interacting with the Z- face of the block - BLOCK_FACE_ZP = 3, // Interacting with the Z+ face of the block + BLOCK_FACE_XM = 4, // Interacting with the X- face of the block + BLOCK_FACE_XP = 5, // Interacting with the X+ face of the block + BLOCK_FACE_YM = 0, // Interacting with the Y- face of the block + BLOCK_FACE_YP = 1, // Interacting with the Y+ face of the block + BLOCK_FACE_ZM = 2, // Interacting with the Z- face of the block + BLOCK_FACE_ZP = 3, // Interacting with the Z+ face of the block // Synonyms using the (deprecated) world directions: BLOCK_FACE_BOTTOM = BLOCK_FACE_YM, // Interacting with the bottom face of the block @@ -47,6 +47,10 @@ enum eBlockFace BLOCK_FACE_SOUTH = BLOCK_FACE_ZP, // Interacting with the southern face of the block BLOCK_FACE_WEST = BLOCK_FACE_XM, // Interacting with the western face of the block BLOCK_FACE_EAST = BLOCK_FACE_XP, // Interacting with the eastern face of the block + + // Bounds, used for range-checking: + BLOCK_FACE_MIN = -1, + BLOCK_FACE_MAX = 5, } ; diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp index 108f79e82..bb9d3c44b 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); @@ -1262,11 +1269,12 @@ void cEntity::DetectCacti(void) -void cEntity::ScheduleMoveToWorld(cWorld * a_World, Vector3d a_NewPosition) +void cEntity::ScheduleMoveToWorld(cWorld * a_World, Vector3d a_NewPosition, bool a_SetPortalCooldown) { m_NewWorld = a_World; m_NewWorldPosition = a_NewPosition; m_IsWorldChangeScheduled = true; + m_WorldChangeSetPortalCooldown = a_SetPortalCooldown; } @@ -1278,6 +1286,14 @@ bool cEntity::DetectPortal() if (m_IsWorldChangeScheduled) { m_IsWorldChangeScheduled = false; + + if (m_WorldChangeSetPortalCooldown) + { + // Delay the portal check. + m_PortalCooldownData.m_TicksDelayed = 0; + m_PortalCooldownData.m_ShouldPreventTeleportation = true; + } + MoveToWorld(m_NewWorld, false, m_NewWorldPosition); return true; } @@ -1336,10 +1352,10 @@ bool cEntity::DetectPortal() TargetPos.x *= 8.0; TargetPos.z *= 8.0; - cWorld * TargetWorld = cRoot::Get()->CreateAndInitializeWorld(GetWorld()->GetLinkedOverworldName(), dimNether, GetWorld()->GetName()); + cWorld * TargetWorld = cRoot::Get()->CreateAndInitializeWorld(GetWorld()->GetLinkedOverworldName(), dimNether, GetWorld()->GetName(), false); LOGD("Jumping nether -> overworld"); new cNetherPortalScanner(this, TargetWorld, TargetPos, 256); - return false; + return true; } else { @@ -1360,10 +1376,10 @@ bool cEntity::DetectPortal() TargetPos.x /= 8.0; TargetPos.z /= 8.0; - cWorld * TargetWorld = cRoot::Get()->CreateAndInitializeWorld(GetWorld()->GetLinkedNetherWorldName(), dimNether, GetWorld()->GetName()); + cWorld * TargetWorld = cRoot::Get()->CreateAndInitializeWorld(GetWorld()->GetLinkedNetherWorldName(), dimNether, GetWorld()->GetName(), false); LOGD("Jumping overworld -> nether"); new cNetherPortalScanner(this, TargetWorld, TargetPos, 128); - return false; + return true; } } case E_BLOCK_END_PORTAL: diff --git a/src/Entities/Entity.h b/src/Entities/Entity.h index 8d1d62ddf..f54e130eb 100644 --- a/src/Entities/Entity.h +++ b/src/Entities/Entity.h @@ -350,31 +350,31 @@ public: */ virtual bool DetectPortal(void); - /// Handles when the entity is in the void + /** Handles when the entity is in the void */ virtual void TickInVoid(cChunk & a_Chunk); - /// Called when the entity starts burning + /** Called when the entity starts burning */ virtual void OnStartedBurning(void); - /// Called when the entity finishes burning + /** Called when the entity finishes burning */ virtual void OnFinishedBurning(void); // tolua_begin - /// Sets the maximum value for the health + /** Sets the maximum value for the health */ void SetMaxHealth(int a_MaxHealth); int GetMaxHealth(void) const { return m_MaxHealth; } - /// Sets whether the entity is fireproof + /** Sets whether the entity is fireproof */ void SetIsFireproof(bool a_IsFireproof); bool IsFireproof(void) const { return m_IsFireproof; } - /// Puts the entity on fire for the specified amount of ticks + /** Puts the entity on fire for the specified amount of ticks */ void StartBurning(int a_TicksLeftBurning); - /// Stops the entity from burning, resets all burning timers + /** Stops the entity from burning, resets all burning timers */ void StopBurning(void); // tolua_end @@ -386,14 +386,14 @@ public: // tolua_begin - /// Teleports to the entity specified + /** Teleports to the entity specified */ virtual void TeleportToEntity(cEntity & a_Entity); - /// Teleports to the coordinates specified + /** Teleports to the coordinates specified */ virtual void TeleportToCoords(double a_PosX, double a_PosY, double a_PosZ); - /// Schedules a MoveToWorld call to occur on the next Tick of the entity - void ScheduleMoveToWorld(cWorld * a_World, Vector3d a_NewPosition); + /** Schedules a MoveToWorld call to occur on the next Tick of the entity */ + void ScheduleMoveToWorld(cWorld * a_World, Vector3d a_NewPosition, bool a_SetPortalCooldown = false); bool MoveToWorld(cWorld * a_World, bool a_ShouldSendRespawn, Vector3d a_NewPosition) { return DoMoveToWorld(a_World, a_ShouldSendRespawn, a_NewPosition); } @@ -538,6 +538,7 @@ protected: /** State variables for ScheduleMoveToWorld. */ bool m_IsWorldChangeScheduled; + bool m_WorldChangeSetPortalCooldown; cWorld * m_NewWorld; Vector3d m_NewWorldPosition; diff --git a/src/Entities/HangingEntity.h b/src/Entities/HangingEntity.h index 5d0aa17b3..003c22082 100644 --- a/src/Entities/HangingEntity.h +++ b/src/Entities/HangingEntity.h @@ -103,6 +103,7 @@ protected: // ASSERT(!"Tried to convert a bad facing!"); Dir = cHangingEntity::BlockFaceToProtocolFace(BLOCK_FACE_XP); + break; } #if !defined(__clang__) default: 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/CMakeLists.txt b/src/Generating/CMakeLists.txt index ebba4cce8..f3fe5c55c 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -101,5 +101,5 @@ endif() if(NOT MSVC) add_library(Generating ${SRCS} ${HDRS}) - target_link_libraries(Generating OSSupport Blocks) + target_link_libraries(Generating OSSupport Blocks Bindings) endif() diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index f9a4d7609..4eee8b707 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -274,7 +274,7 @@ void cComposableGenerator::InitCompositionGen(cIniFile & a_IniFile) } // Create a cache of the composited heightmaps, so that finishers may use it: - m_CompositedHeightCache = std::make_shared<cHeiGenMultiCache>(std::make_shared<cCompositedHeiGen>(m_ShapeGen, m_CompositionGen), 16, 24); + m_CompositedHeightCache = std::make_shared<cHeiGenMultiCache>(std::make_shared<cCompositedHeiGen>(m_BiomeGen, m_ShapeGen, m_CompositionGen), 16, 24); // 24 subcaches of depth 16 each = 96 KiB of RAM. Acceptable, for the amount of work this saves. } @@ -618,7 +618,9 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); int MinDensity = a_IniFile.GetValueSetI("Generator", "VillageMinDensity", 50); int MaxDensity = a_IniFile.GetValueSetI("Generator", "VillageMaxDensity", 80); - m_FinishGens.push_back(std::make_shared<cVillageGen>(Seed, GridSize, MaxOffset, MaxDepth, MaxSize, MinDensity, MaxDensity, m_BiomeGen, m_CompositedHeightCache)); + AString PrefabList = a_IniFile.GetValueSet("Generator", "VillagePrefabs", "PlainsVillage, SandVillage"); + auto Prefabs = StringSplitAndTrim(PrefabList, ","); + m_FinishGens.push_back(std::make_shared<cVillageGen>(Seed, GridSize, MaxOffset, MaxDepth, MaxSize, MinDensity, MaxDensity, m_BiomeGen, m_CompositedHeightCache, Prefabs)); } else if (NoCaseCompare(*itr, "Vines") == 0) { diff --git a/src/Generating/CompositedHeiGen.h b/src/Generating/CompositedHeiGen.h index fa33a7861..c4e6ce77d 100644 --- a/src/Generating/CompositedHeiGen.h +++ b/src/Generating/CompositedHeiGen.h @@ -20,7 +20,8 @@ class cCompositedHeiGen: public cTerrainHeightGen { public: - cCompositedHeiGen(cTerrainShapeGenPtr a_ShapeGen, cTerrainCompositionGenPtr a_CompositionGen): + cCompositedHeiGen(cBiomeGenPtr a_BiomeGen, cTerrainShapeGenPtr a_ShapeGen, cTerrainCompositionGenPtr a_CompositionGen): + m_BiomeGen(a_BiomeGen), m_ShapeGen(a_ShapeGen), m_CompositionGen(a_CompositionGen) { @@ -28,18 +29,20 @@ public: - // cTerrainheightGen overrides: + // cTerrainHeightGen overrides: virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override { cChunkDesc::Shape shape; m_ShapeGen->GenShape(a_ChunkX, a_ChunkZ, shape); cChunkDesc desc(a_ChunkX, a_ChunkZ); + m_BiomeGen->GenBiomes(a_ChunkX, a_ChunkZ, desc.GetBiomeMap()); // Need to initialize biomes for the composition gen desc.SetHeightFromShape(shape); m_CompositionGen->ComposeTerrain(desc, shape); memcpy(a_HeightMap, desc.GetHeightMap(), sizeof(a_HeightMap)); } protected: + cBiomeGenPtr m_BiomeGen; cTerrainShapeGenPtr m_ShapeGen; cTerrainCompositionGenPtr m_CompositionGen; }; diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index 14a9da39d..93e7179e2 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -6,6 +6,7 @@ #include "Globals.h" #include "PieceGenerator.h" +#include "../SelfTests.h" @@ -22,6 +23,11 @@ static class cPieceGeneratorSelfTest : public: cPieceGeneratorSelfTest(void) { + cSelfTests::Get().Register(std::bind(&cPieceGeneratorSelfTest::Test, this), "PieceGenerator"); + } + + void Test(void) + { // Prepare the internal state: InitializePieces(); @@ -31,14 +37,14 @@ public: Gen.PlacePieces(500, 50, 500, 3, OutPieces); // Print out the pieces: - printf("OutPieces.size() = " SIZE_T_FMT "\n", OutPieces.size()); + LOG("OutPieces.size() = " SIZE_T_FMT, OutPieces.size()); size_t idx = 0; for (cPlacedPieces::const_iterator itr = OutPieces.begin(), end = OutPieces.end(); itr != end; ++itr, ++idx) { const Vector3i & Coords = (*itr)->GetCoords(); cCuboid Hitbox = (*itr)->GetHitBox(); Hitbox.Sort(); - printf(SIZE_T_FMT ": {%d, %d, %d}, rot %d, hitbox {%d, %d, %d} - {%d, %d, %d} (%d * %d * %d)\n", idx, + LOG(SIZE_T_FMT ": {%d, %d, %d}, rot %d, hitbox {%d, %d, %d} - {%d, %d, %d} (%d * %d * %d)", idx, Coords.x, Coords.y, Coords.z, (*itr)->GetNumCCWRotations(), Hitbox.p1.x, Hitbox.p1.y, Hitbox.p1.z, @@ -46,7 +52,7 @@ public: Hitbox.DifX() + 1, Hitbox.DifY() + 1, Hitbox.DifZ() + 1 ); } // itr - OutPieces[] - printf("Done.\n"); + LOG("Done."); // Free the placed pieces properly: Gen.FreePieces(OutPieces); diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 1de0346bd..e5e6a1e06 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -166,6 +166,45 @@ cPrefab::cPrefab(const cBlockArea & a_Image, int a_AllowedRotations) : +cPrefab::cPrefab(const cBlockArea & a_Image) : + m_Size(a_Image.GetSize()), + m_AllowedRotations(0), + m_MergeStrategy(cBlockArea::msOverwrite), + m_ShouldExtendFloor(false), + m_DefaultWeight(1), + m_AddWeightIfSame(0), + m_MoveToGround(false) +{ + m_HitBox.p1.Set(0, 0, 0); + m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1); + m_BlockArea[0].CopyFrom(a_Image); +} + + + + + +cPrefab::cPrefab(const AString & a_BlockDefinitions, const AString & a_BlockData, int a_SizeX, int a_SizeY, int a_SizeZ) : + m_Size(a_SizeX, a_SizeY, a_SizeZ), + m_AllowedRotations(0), + m_MergeStrategy(cBlockArea::msOverwrite), + m_ShouldExtendFloor(false), + m_DefaultWeight(1), + m_AddWeightIfSame(0), + m_MoveToGround(false) +{ + m_HitBox.p1.Set(0, 0, 0); + m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1); + m_BlockArea[0].Create(m_Size); + CharMap cm; + ParseCharMap(cm, a_BlockDefinitions.c_str()); + ParseBlockImage(cm, a_BlockData.c_str()); +} + + + + + void cPrefab::AddRotatedBlockAreas(void) { // 1 CCW rotation: @@ -326,6 +365,16 @@ void cPrefab::AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Dire +void cPrefab::SetAllowedRotations(int a_AllowedRotations) +{ + m_AllowedRotations = a_AllowedRotations; + AddRotatedBlockAreas(); +} + + + + + void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef) { ASSERT(a_CharMapDef != nullptr); diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index eb905e78e..45af4b282 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -95,6 +95,13 @@ public: /** Creates a prefab based on the given BlockArea and allowed rotations. */ cPrefab(const cBlockArea & a_Image, int a_AllowedRotations); + /** Creates a prefab based on the given BlockArea. Allowed rotations can be added later on using SetAllowedRotations(). */ + cPrefab(const cBlockArea & a_Image); + + /** Creates a prefab based on the specified block data, using the char-to-block map in a_BlockDefinitions. + Allowed rotations can be added later on using SetAllowedRotations(). */ + cPrefab(const AString & a_BlockDefinitions, const AString & a_BlockData, int a_SizeX, int a_SizeY, int a_SizeZ); + /** Draws the prefab into the specified chunk, according to the placement stored in the PlacedPiece. */ void Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const; @@ -124,6 +131,21 @@ public: at the coords governed by the connectors. */ bool ShouldMoveToGround(void) const { return m_MoveToGround; } + /** Sets the m_AllowedRotations bitmask and fills the m_BlockArea[] with rotated versions of m_BlockArea[0]. */ + void SetAllowedRotations(int a_AllowedRotations); + + /** Parses the per-depth weight into m_DepthWeight member. */ + void ParseDepthWeight(const char * a_DepthWeightDef); + + /** Sets the merge strategy to be used when drawing the piece. */ + void SetMergeStrategy(cBlockArea::eMergeStrategy a_MergeStrategy) { m_MergeStrategy = a_MergeStrategy; } + + /** Sets the flag whether the prefab should be moved to ground level before being drawn. */ + void SetMoveToGround(bool a_MoveToGround) { m_MoveToGround = a_MoveToGround; } + + /** Sets the flag whether the lowest layer of the prefab should be repeated downwards until it hits a solid block. */ + void SetExtendFloor(bool a_ShouldExtendFloor) { m_ShouldExtendFloor = a_ShouldExtendFloor; } + protected: /** Packs complete definition of a single block, for per-letter assignment. */ struct sBlockTypeDef @@ -201,9 +223,6 @@ protected: /** Parses the connectors definition text into m_Connectors member. */ void ParseConnectors(const char * a_ConnectorsDef); - - /** Parses the per-depth weight into m_DepthWeight member. */ - void ParseDepthWeight(const char * a_DepthWeightDef); }; diff --git a/src/Generating/PrefabPiecePool.cpp b/src/Generating/PrefabPiecePool.cpp index e4df8efa8..e2273aed3 100644 --- a/src/Generating/PrefabPiecePool.cpp +++ b/src/Generating/PrefabPiecePool.cpp @@ -5,6 +5,54 @@ #include "Globals.h" #include "PrefabPiecePool.h" +#include "../Bindings/LuaState.h" +#include "SelfTests.h" +#include "WorldStorage/SchematicFileSerializer.h" + + + + + +// Conditionally log a warning +#define CONDWARNING(ShouldLog, ...) \ + if (ShouldLog) \ + { \ + LOGWARNING(__VA_ARGS__); \ + } + + + + + +/** Returns the map of string => eMergeStrategy used when translating cubeset file merge strategies. */ +static std::map<AString, cBlockArea::eMergeStrategy> & GetMergeStrategyMap(void) +{ + static std::map<AString, cBlockArea::eMergeStrategy> msmap; + if (msmap.empty()) + { + // This is the first use, initialize the map: + msmap["msOverwrite"] = cBlockArea::msOverwrite; + msmap["msFillAir"] = cBlockArea::msFillAir; + msmap["msImprint"] = cBlockArea::msImprint; + msmap["msLake"] = cBlockArea::msLake; + msmap["msSpongePrint"] = cBlockArea::msSpongePrint; + msmap["msDifference"] = cBlockArea::msDifference; + msmap["msSimpleCompare"] = cBlockArea::msSimpleCompare; + msmap["msMask"] = cBlockArea::msMask; + } + return msmap; +} + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cPrefabPiecePool: + +cPrefabPiecePool::cPrefabPiecePool(void) +{ +} @@ -26,6 +74,15 @@ cPrefabPiecePool::cPrefabPiecePool( +cPrefabPiecePool::cPrefabPiecePool(const AString & a_FileName, bool a_LogWarnings) +{ + LoadFromFile(a_FileName, a_LogWarnings); +} + + + + + cPrefabPiecePool::~cPrefabPiecePool() { Clear(); @@ -83,6 +140,66 @@ void cPrefabPiecePool::AddStartingPieceDefs(const cPrefab::sDef * a_StartingPiec +bool cPrefabPiecePool::LoadFromFile(const AString & a_FileName, bool a_LogWarnings) +{ + // Read the first 4 KiB of the file in order to auto-detect format: + cFile f; + if (!f.Open(a_FileName, cFile::fmRead)) + { + CONDWARNING(a_LogWarnings, "Cannot open file %s for reading", a_FileName.c_str()); + return false; + } + char buf[4096]; + auto len = f.Read(buf, sizeof(buf)); + f.Close(); + AString Header(buf, static_cast<size_t>(len)); + + if (Header.find("CubesetFormatVersion =") != AString::npos) + { + return LoadFromCubesetFile(a_FileName, a_LogWarnings); + } + CONDWARNING(a_LogWarnings, "Cannot load prefabs from file %s, unknown file format", a_FileName.c_str()); + return false; +} + + + + + +bool cPrefabPiecePool::LoadFromCubesetFile(const AString & a_FileName, bool a_LogWarnings) +{ + // Load the file in the Lua interpreter: + cLuaState Lua(Printf("LoadablePiecePool %s", a_FileName.c_str())); + Lua.Create(); + if (!Lua.LoadFile(a_FileName, a_LogWarnings)) + { + // Reason for failure has already been logged in LoadFile() + return false; + } + + // Check the version: + int Version = 0; + if (!Lua.GetNamedGlobal("Cubeset.Metadata.CubesetFormatVersion", Version)) + { + CONDWARNING(a_LogWarnings, "Cannot load cubeset %s, it doesn't contain version information.", a_FileName.c_str()); + return false; + } + + // Load the data, using the correct version loader: + if (Version == 1) + { + return LoadFromCubesetFileVer1(a_FileName, Lua, a_LogWarnings); + } + + // Unknown version: + CONDWARNING(a_LogWarnings, "Cannot load cubeset %s, version (%d) not supported.", a_FileName.c_str(), Version); + return false; +} + + + + + void cPrefabPiecePool::AddToPerConnectorMap(cPrefab * a_Prefab) { cPiece::cConnectors Connectors = (static_cast<const cPiece *>(a_Prefab))->GetConnectors(); @@ -95,6 +212,377 @@ void cPrefabPiecePool::AddToPerConnectorMap(cPrefab * a_Prefab) + +bool cPrefabPiecePool::LoadFromCubesetFileVer1(const AString & a_FileName, cLuaState & a_LuaState, bool a_LogWarnings) +{ + // Load the metadata: + ApplyPoolMetadataCubesetVer1(a_FileName, a_LuaState, a_LogWarnings); + + // Push the Cubeset.Pieces global value on the stack: + lua_getglobal(a_LuaState, "_G"); + cLuaState::cStackValue stk(a_LuaState); + auto pieces = a_LuaState.WalkToValue("Cubeset.Pieces"); + if (!pieces.IsValid() || !lua_istable(a_LuaState, -1)) + { + CONDWARNING(a_LogWarnings, "The cubeset file %s doesn't contain any pieces", a_FileName.c_str()); + return false; + } + + // Iterate over all items in the Cubeset.Pieces value: + int idx = 1; + bool res = true; + while (true) + { + lua_pushinteger(a_LuaState, idx); // stk: [Pieces] [idx] + lua_gettable(a_LuaState, -2); // stk: [Pieces] [PieceItem] + if (!lua_istable(a_LuaState, -1)) + { + // The PieceItem is not present, we've iterated over all items + lua_pop(a_LuaState, 1); // stk: [Pieces] + break; + } + if (!LoadCubesetPieceVer1(a_FileName, a_LuaState, idx, a_LogWarnings)) + { + res = false; + } + lua_pop(a_LuaState, 1); // stk: [Pieces] + idx += 1; + } + return res; +} + + + + + +bool cPrefabPiecePool::LoadCubesetPieceVer1(const AString & a_FileName, cLuaState & a_LuaState, int a_PieceIndex, bool a_LogWarnings) +{ + ASSERT(lua_istable(a_LuaState, -1)); + + // The piece name is optional, but useful for debugging messages: + AString PieceName; + if (!a_LuaState.GetNamedValue("OriginData.ExportName", PieceName)) + { + Printf(PieceName, "Piece #%d", a_PieceIndex); + } + + // Read the hitbox dimensions: + cCuboid Hitbox; + if ( + !a_LuaState.GetNamedValue("Hitbox.MinX", Hitbox.p1.x) || + !a_LuaState.GetNamedValue("Hitbox.MinY", Hitbox.p1.y) || + !a_LuaState.GetNamedValue("Hitbox.MinZ", Hitbox.p1.z) || + !a_LuaState.GetNamedValue("Hitbox.MaxX", Hitbox.p2.x) || + !a_LuaState.GetNamedValue("Hitbox.MaxY", Hitbox.p2.y) || + !a_LuaState.GetNamedValue("Hitbox.MaxZ", Hitbox.p2.z) + ) + { + CONDWARNING(a_LogWarnings, "Cannot load piece %s from file %s, it's missing hitbox information", PieceName.c_str(), a_FileName.c_str()); + return false; + } + + // Load the prefab data: + auto prefab = LoadPrefabFromCubesetVer1(a_FileName, a_LuaState, PieceName, a_LogWarnings); + if (prefab == nullptr) + { + return false; + } + + // Read the connectors + if (!ReadConnectorsCubesetVer1(a_FileName, a_LuaState, PieceName, prefab.get(), a_LogWarnings)) + { + return false; + } + + // Read the allowed rotations. It is an optional metadata value, default to 0: + int AllowedRotations = 0; + a_LuaState.GetNamedValue("Metadata.AllowedRotations", AllowedRotations); + prefab->SetAllowedRotations(AllowedRotations); + + // Apply the relevant metadata: + if (!ApplyPieceMetadataCubesetVer1(a_FileName, a_LuaState, PieceName, prefab.get(), a_LogWarnings)) + { + return false; + } + + // Add the prefab into the list of pieces: + int IsStartingPiece = 0; + a_LuaState.GetNamedValue("Metadata.IsStarting", IsStartingPiece); + if (IsStartingPiece != 0) + { + m_StartingPieces.push_back(prefab.release()); + } + else + { + auto p = prefab.release(); + m_AllPieces.push_back(p); + AddToPerConnectorMap(p); + } + return true; +} + + + + + +UniquePtr<cPrefab> cPrefabPiecePool::LoadPrefabFromCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + bool a_LogWarnings +) +{ + // First try loading a referenced schematic file, if any: + AString SchematicFileName; + if (a_LuaState.GetNamedValue("SchematicFileName", SchematicFileName)) + { + auto PathEnd = a_FileName.find_last_of("/\\"); // Find the last path separator + if (PathEnd != AString::npos) + { + SchematicFileName = a_FileName.substr(0, PathEnd) + SchematicFileName; + } + cBlockArea area; + if (!cSchematicFileSerializer::LoadFromSchematicFile(area, SchematicFileName)) + { + CONDWARNING(a_LogWarnings, "Cannot load schematic file \"%s\" for piece %s in cubeset %s.", + SchematicFileName.c_str(), a_PieceName.c_str(), a_FileName.c_str() + ); + return nullptr; + } + return cpp14::make_unique<cPrefab>(area); + } // if (SchematicFileName) + + // There's no referenced schematic file, load from BlockDefinitions / BlockData. + // Get references to the data and the table.concat function: + cLuaState::cRef TableConcat, BlockDefinitions, BlockData; + if ( + !a_LuaState.GetNamedGlobal("table.concat", TableConcat) || + !a_LuaState.GetNamedValue("BlockDefinitions", BlockDefinitions) || + !a_LuaState.GetNamedValue("BlockData", BlockData) + ) + { + CONDWARNING(a_LogWarnings, "Cannot parse block data for piece %s in cubeset %s", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Call table.concat() on the BlockDefinitions: + AString BlockDefStr; + if (!a_LuaState.Call(TableConcat, BlockDefinitions, "\n", cLuaState::Return, BlockDefStr)) + { + CONDWARNING(a_LogWarnings, "Cannot concat block definitions for piece %s in cubeset %s", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Call table.concat() on the BlockData: + AString BlockDataStr; + if (!a_LuaState.Call(TableConcat, BlockData, "", cLuaState::Return, BlockDataStr)) + { + CONDWARNING(a_LogWarnings, "Cannot concat block data for piece %s in cubeset %s", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Read the size: + int SizeX = 0, SizeY = 0, SizeZ = 0; + if ( + !a_LuaState.GetNamedValue("Size.x", SizeX) || + !a_LuaState.GetNamedValue("Size.y", SizeY) || + !a_LuaState.GetNamedValue("Size.z", SizeZ) + ) + { + CONDWARNING(a_LogWarnings, "Cannot load piece %s from file %s, its size information is missing", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Check that the size matches the data length: + if (static_cast<size_t>(SizeX * SizeY * SizeZ) != BlockDataStr.size()) + { + CONDWARNING(a_LogWarnings, "Cannot create piece %s from file %s, its size (%d) doesn't match the blockdata length (%u)", + a_PieceName.c_str(), a_FileName.c_str(), + SizeX * SizeY * SizeZ, static_cast<unsigned>(BlockDataStr.size()) + ); + return nullptr; + } + + return cpp14::make_unique<cPrefab>(BlockDefStr, BlockDataStr, SizeX, SizeY, SizeZ); +} + + + + + +bool cPrefabPiecePool::ReadConnectorsCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings +) +{ + // Get the Connectors subtable: + auto conns = a_LuaState.WalkToValue("Connectors"); + if (!conns.IsValid()) + { + CONDWARNING(a_LogWarnings, "Cannot load piece %s from file %s, it has no connectors definition.", a_PieceName.c_str(), a_FileName.c_str()); + return false; + } + + // Iterate over all items in the Connectors table: + int idx = 1; + bool res = true; + while (true) + { + lua_pushinteger(a_LuaState, idx); // stk: [Connectors] [idx] + lua_gettable(a_LuaState, -2); // stk: [Connectors] [conn] + if (!lua_istable(a_LuaState, -1)) + { + // The connector is not present, we've iterated over all items + lua_pop(a_LuaState, 1); // stk: [Connectors] + break; + } + int Type = 0, RelX = 0, RelY = 0, RelZ = 0; + eBlockFace Direction = BLOCK_FACE_NONE; + if ( + !a_LuaState.GetNamedValue("Type", Type) || + !a_LuaState.GetNamedValue("RelX", RelX) || + !a_LuaState.GetNamedValue("RelY", RelY) || + !a_LuaState.GetNamedValue("RelZ", RelZ) || + !a_LuaState.GetNamedValue("Direction", Direction) + ) + { + CONDWARNING(a_LogWarnings, "Piece %s in file %s has a malformed Connector at index %d. Skipping the connector.", a_PieceName.c_str(), a_FileName.c_str(), idx); + res = false; + continue; + } + a_Prefab->AddConnector(RelX, RelY, RelZ, Direction, Type); + lua_pop(a_LuaState, 1); // stk: [Connectors] + idx += 1; + } + return res; +} + + + + + +bool cPrefabPiecePool::ApplyPieceMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings +) +{ + // Push the Metadata table on top of the Lua stack: + auto md = a_LuaState.WalkToValue("Metadata"); + if (!md.IsValid()) + { + return false; + } + + // Get the values: + int AddWeightIfSame = 0, DefaultWeight = 100, MoveToGround = 0, ShouldExpandFloor = 0; + AString DepthWeight, MergeStrategy; + a_LuaState.GetNamedValue("AddWeightIfSame", AddWeightIfSame); + a_LuaState.GetNamedValue("DefaultWeight", DefaultWeight); + a_LuaState.GetNamedValue("DepthWeight", DepthWeight); + a_LuaState.GetNamedValue("MergeStrategy", MergeStrategy); + a_LuaState.GetNamedValue("MoveToGround", MoveToGround); + a_LuaState.GetNamedValue("ShouldExpandFloor", ShouldExpandFloor); + + // Apply the values: + a_Prefab->SetAddWeightIfSame(AddWeightIfSame); + a_Prefab->SetDefaultWeight(DefaultWeight); + a_Prefab->ParseDepthWeight(DepthWeight.c_str()); + auto msmap = GetMergeStrategyMap(); + auto strategy = msmap.find(MergeStrategy); + if (strategy == msmap.end()) + { + CONDWARNING(a_LogWarnings, "Unknown merge strategy (\"%s\") specified for piece %s in file %s. Using msSpongePrint instead.", + MergeStrategy.c_str(), a_PieceName.c_str(), a_FileName.c_str() + ); + a_Prefab->SetMergeStrategy(cBlockArea::msSpongePrint); + } + else + { + a_Prefab->SetMergeStrategy(strategy->second); + } + a_Prefab->SetMoveToGround(MoveToGround != 0); + a_Prefab->SetExtendFloor(ShouldExpandFloor != 0); + + return true; +} + + + + + +bool cPrefabPiecePool::ApplyPoolMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + bool a_LogWarnings +) +{ + // Push the Cubeset.Metadata table on top of the Lua stack: + lua_getglobal(a_LuaState, "_G"); + auto md = a_LuaState.WalkToValue("Cubeset.Metadata"); + if (!md.IsValid()) + { + CONDWARNING(a_LogWarnings, "Cannot load cubeset from file %s: Cubeset.Metadata table is missing", a_FileName.c_str()); + return false; + } + + // Set the metadata values to defaults: + m_MinDensity = 100; + m_MaxDensity = 100; + m_VillageRoadBlockType = E_BLOCK_GRAVEL; + m_VillageRoadBlockMeta = 0; + m_VillageWaterRoadBlockType = E_BLOCK_PLANKS; + m_VillageWaterRoadBlockMeta = 0; + + // Read the metadata values: + a_LuaState.GetNamedValue("IntendedUse", m_IntendedUse); + a_LuaState.GetNamedValue("MaxDensity", m_MaxDensity); + a_LuaState.GetNamedValue("MinDensity", m_MinDensity); + a_LuaState.GetNamedValue("VillageRoadBlockType", m_VillageRoadBlockType); + a_LuaState.GetNamedValue("VillageRoadBlockMeta", m_VillageRoadBlockMeta); + a_LuaState.GetNamedValue("VillageWaterRoadBlockType", m_VillageWaterRoadBlockType); + a_LuaState.GetNamedValue("VillageWaterRoadBlockMeta", m_VillageWaterRoadBlockMeta); + AString allowedBiomes; + if (a_LuaState.GetNamedValue("AllowedBiomes", allowedBiomes)) + { + auto biomes = StringSplitAndTrim(allowedBiomes, ","); + for (const auto & biome: biomes) + { + EMCSBiome b = StringToBiome(biome); + if (b == biInvalidBiome) + { + CONDWARNING(a_LogWarnings, "Invalid biome (\"%s\") specified in AllowedBiomes in cubeset file %s. Skipping the biome.", + biome.c_str(), a_FileName.c_str() + ); + continue; + } + m_AllowedBiomes.insert(b); + } + } + else + { + // All biomes are allowed: + for (int b = biFirstBiome; b <= biMaxBiome; b++) + { + m_AllowedBiomes.insert(static_cast<EMCSBiome>(b)); + } + for (int b = biFirstVariantBiome; b <= biMaxVariantBiome; b++) + { + m_AllowedBiomes.insert(static_cast<EMCSBiome>(b)); + } + } + return true; +} + + + + + cPieces cPrefabPiecePool::GetPiecesWithConnector(int a_ConnectorType) { return m_PiecesByConnector[a_ConnectorType]; diff --git a/src/Generating/PrefabPiecePool.h b/src/Generating/PrefabPiecePool.h index b9c1f0483..f7bf41994 100644 --- a/src/Generating/PrefabPiecePool.h +++ b/src/Generating/PrefabPiecePool.h @@ -9,6 +9,7 @@ #pragma once +#include <unordered_set> #include "PieceGenerator.h" #include "Prefab.h" @@ -16,6 +17,13 @@ +// fwd: +class cLuaState; + + + + + class cPrefabPiecePool : public cPiecePool { @@ -34,6 +42,10 @@ public: const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs ); + /** Creates a pool and loads the contents of the specified file into it. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + cPrefabPiecePool(const AString & a_FileName, bool a_LogWarnings); + /** Destroys the pool, freeing all pieces. */ ~cPrefabPiecePool(); @@ -50,6 +62,40 @@ public: May be called multiple times with different PieceDefs, will add all such pieces. */ void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs); + /** Loads the pieces from the specified file. Returns true if successful, false on error. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadFromFile(const AString & a_FileName, bool a_LogWarnings); + + /** Loads the pieces from the specified Cubeset file. Returns true if successful, false on error. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadFromCubesetFile(const AString & a_FileName, bool a_LogWarnings); + + /** Returns the number of regular (non-starting) pieces. */ + size_t GetAllPiecesCount(void) const { return m_AllPieces.size(); } + + /** Returns the number of starting pieces. */ + size_t GetStartingPiecesCount(void) const { return m_StartingPieces.size(); } + + // Metadata accessors: + const AString & GetIntendedUse(void) const { return m_IntendedUse; } + int GetMinDensity(void) const { return m_MinDensity; } + int GetMaxDensity(void) const { return m_MaxDensity; } + BLOCKTYPE GetVillageRoadBlockType (void) const { return m_VillageRoadBlockType; } + NIBBLETYPE GetVillageRoadBlockMeta (void) const { return m_VillageRoadBlockMeta; } + BLOCKTYPE GetVillageWaterRoadBlockType(void) const { return m_VillageWaterRoadBlockType; } + NIBBLETYPE GetVillageWaterRoadBlockMeta(void) const { return m_VillageWaterRoadBlockMeta; } + + /** Returns true if a_Biome is among the accepted biomes in the m_AcceptedBiomes metadata member. */ + bool IsBiomeAllowed(EMCSBiome a_Biome) const { return (m_AllowedBiomes.find(a_Biome) != m_AllowedBiomes.end()); } + + // cPiecePool overrides: + virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; + virtual cPieces GetStartingPieces(void) override; + virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; + virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override; + virtual void PiecePlaced(const cPiece & a_Piece) override; + virtual void Reset(void) override; + protected: /** The type used to map a connector type to the list of pieces with that connector */ @@ -67,17 +113,97 @@ protected: The pieces are copies out of m_AllPieces and shouldn't be ever delete-d. */ cPiecesMap m_PiecesByConnector; + /** The intended use of this piece pool, as specified by the pool's metadata. */ + AString m_IntendedUse; + + /** The minimum density, as read from the metadata. */ + int m_MinDensity; + + /** The maximum density, as read from the metadata. */ + int m_MaxDensity; + + /** The block type to use for the village roads. */ + BLOCKTYPE m_VillageRoadBlockType; + + /** The block meta to use for the village roads. */ + NIBBLETYPE m_VillageRoadBlockMeta; + + /** The block type used for the village roads if the road is on water. */ + BLOCKTYPE m_VillageWaterRoadBlockType; + + /** The block meta used for the village roads if the road is on water. */ + NIBBLETYPE m_VillageWaterRoadBlockMeta; + + /** A set of allowed biomes for the pool. The pool will only be used within the specified biomes. */ + std::unordered_set<EMCSBiome, BiomeHasher> m_AllowedBiomes; + /** Adds the prefab to the m_PiecesByConnector map for all its connectors. */ void AddToPerConnectorMap(cPrefab * a_Prefab); + + /** Loads the pieces from the cubeset file parsed into the specified Lua state. + Returns true on success, false on error. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadFromCubesetFileVer1(const AString & a_FileName, cLuaState & a_LuaState, bool a_LogWarnings); + + /** Loads a single piece from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns true on success, false on error. + a_PieceIndex is the index of the piece, in the Pieces table. It is used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadCubesetPieceVer1(const AString & a_FileName, cLuaState & a_LuaState, int a_PieceIndex, bool a_LogWarnings); + + /** Loads a single piece's prefab from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns the prefab on success, nullptr on failure. + a_PieceName is the identification of the piece, used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + UniquePtr<cPrefab> LoadPrefabFromCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + bool a_LogWarnings + ); - // cPiecePool overrides: - virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; - virtual cPieces GetStartingPieces(void) override; - virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; - virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override; - virtual void PiecePlaced(const cPiece & a_Piece) override; - virtual void Reset(void) override; + /** Reads a single piece's connectors from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns true on success, false on failure. + The connectors are added into the a_Prefab object. + No Connectors table is considered a failure, empty Connectors table is considered a success. + If any of the connectors are malformed, it is considered a failure, although the rest of the connectors will still load. + a_PieceName is the identification of the piece, used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool ReadConnectorsCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings + ); + + /** Reads a single piece's metadata from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns true on success, false on failure. + The metadata is applied into the a_Prefab object. + a_PieceName is the identification of the piece, used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool ApplyPieceMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings + ); + + /** Reads the metadata for the entire pool from the cubeset file parsed into the specified Lua state. + Returns true on success, false on failure. + The metadata is applied into "this". + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool ApplyPoolMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + bool a_LogWarnings + ); } ; diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp deleted file mode 100644 index c08e53ef6..000000000 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ /dev/null @@ -1,3590 +0,0 @@ - -// AlchemistVillagePrefabs.cpp - -// Defines the prefabs in the group AlchemistVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "AlchemistVillagePrefabs.h" - - - - - -const cPrefab::sDef g_AlchemistVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // BarWithBasement: - // The data has been exported from the gallery Desert, area index 82, ID 598, created by STR_Warrior - { - // Size: - 11, 12, 10, // SizeX = 11, SizeY = 12, SizeZ = 10 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 11, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 65: 3\n" /* ladder */ - "B: 50: 3\n" /* torch */ - "C:171: 8\n" /* carpet */ - "D:101: 0\n" /* ironbars */ - "E: 64: 8\n" /* wooddoorblock */ - "F:128: 2\n" /* sandstonestairs */ - "G: 24: 1\n" /* sandstone */ - "H: 44: 9\n" /* step */ - "I:126: 8\n" /* woodenslab */ - "J:128: 7\n" /* sandstonestairs */ - "K: 44: 1\n" /* step */ - "L: 64: 3\n" /* wooddoorblock */ - "M:128: 6\n" /* sandstonestairs */ - "a: 24: 2\n" /* sandstone */ - "b: 1: 0\n" /* stone */ - "c: 24: 0\n" /* sandstone */ - "d: 12: 0\n" /* sand */ - "e:134: 4\n" /* 134 */ - "f: 5: 1\n" /* wood */ - "g:134: 5\n" /* 134 */ - "h: 65: 5\n" /* ladder */ - "i: 17: 3\n" /* tree */ - "j: 69:11\n" /* lever */ - "k: 4: 0\n" /* cobblestone */ - "l:134: 0\n" /* 134 */ - "m: 19: 0\n" /* sponge */ - "n:134: 1\n" /* 134 */ - "o: 50: 4\n" /* torch */ - "p: 13: 0\n" /* gravel */ - "q: 5: 0\n" /* wood */ - "r: 96: 8\n" /* trapdoor */ - "s:128: 5\n" /* sandstonestairs */ - "t:107: 2\n" /* fencegate */ - "u:128: 4\n" /* sandstonestairs */ - "v:134: 3\n" /* 134 */ - "w: 85: 0\n" /* fence */ - "x:134: 7\n" /* 134 */ - "y:107: 5\n" /* fencegate */ - "z: 64: 1\n" /* wooddoorblock */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmabbbammm" - /* 1 */ "mcccccccccm" - /* 2 */ "abcccccccba" - /* 3 */ "cbcccccccbc" - /* 4 */ "cbcccccccbc" - /* 5 */ "cbcccccccbc" - /* 6 */ "cbcccccccbc" - /* 7 */ "cbcccccccbc" - /* 8 */ "abbbbbbbbba" - /* 9 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmadddammm" - /* 1 */ "mcccccccccm" - /* 2 */ "acefg.efgca" - /* 3 */ "ccefg.efgcc" - /* 4 */ "ccefg.efgcc" - /* 5 */ "cc.......cc" - /* 6 */ "cc.......cc" - /* 7 */ "cch......cc" - /* 8 */ "accccccccca" - /* 9 */ "mmmmmmmmmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmadddammm" - /* 1 */ "mcccccccccm" - /* 2 */ "acfff.fffca" - /* 3 */ "ccfff.fffcc" - /* 4 */ "ccfif.fifcc" - /* 5 */ "cc.j...j.cc" - /* 6 */ "cc.......cc" - /* 7 */ "cch......cc" - /* 8 */ "accccccccca" - /* 9 */ "mmmmmmmmmmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmakkkammm" - /* 1 */ "mcccccccccm" - /* 2 */ "aclfn.lfnca" - /* 3 */ "cclfn.lfncc" - /* 4 */ "cclfn.lfncc" - /* 5 */ "cc.......cc" - /* 6 */ "cc.......cc" - /* 7 */ "cch..o...cc" - /* 8 */ "accccccccca" - /* 9 */ "mmmmmmmmmmm" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmapppammm" - /* 1 */ "mmmmpppmmmm" - /* 2 */ "acccqqqccca" - /* 3 */ "cqqqqqqqqqc" - /* 4 */ "cqqqqqqqqqc" - /* 5 */ "cqqqqqqqqqc" - /* 6 */ "cqqqqqqqqqc" - /* 7 */ "cqrqqqqqqqc" - /* 8 */ "aqcccccccca" - /* 9 */ "mmmmmmmmmmm" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmma...ammm" - /* 1 */ "mmm.....mmm" - /* 2 */ "acccstuccca" - /* 3 */ "cnv.....vvc" - /* 4 */ "cnw.....wlc" - /* 5 */ "c.........c" - /* 6 */ "cgxxe.....c" - /* 7 */ "c...y..nwlc" - /* 8 */ "azcccccccca" - /* 9 */ "mmAmmmmmmmm" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmma...ammm" - /* 1 */ "mmm.....mmm" - /* 2 */ "accc...ccca" - /* 3 */ "c..B...B..c" - /* 4 */ "c.C.....C.c" - /* 5 */ "D.........D" - /* 6 */ "c.........c" - /* 7 */ "c.......C.c" - /* 8 */ "aEccDDDccca" - /* 9 */ "mmAmmmmmmmm" - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmF...Fmmm" - /* 1 */ "mmmG...cmmm" - /* 2 */ "acccsHuccca" - /* 3 */ "cIIIIIIIIIc" - /* 4 */ "cIIIIIIIIIc" - /* 5 */ "uIIIIIIIIIs" - /* 6 */ "cIIIIIIIIIc" - /* 7 */ "cIIIIIIIIIc" - /* 8 */ "acccJJJccca" - /* 9 */ "mmAmmmmmmmm" - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmm.....mmm" - /* 1 */ "mmm.....mmm" - /* 2 */ "cKKKKcKKKKc" - /* 3 */ "KacccccccaK" - /* 4 */ "Kc.......cK" - /* 5 */ "cc.......cc" - /* 6 */ "Kc.......cK" - /* 7 */ "KaLccccccaK" - /* 8 */ "cK.KKcKKKKc" - /* 9 */ "mmmmmmmmmmm" - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accDDDcca." - /* 4 */ ".c.......c." - /* 5 */ ".D.......D." - /* 6 */ ".c.......c." - /* 7 */ ".aEcDDDcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 10 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accMMMcca." - /* 4 */ ".cIIIIIIIc." - /* 5 */ ".uIIIIIIIs." - /* 6 */ ".cIIIIIIIc." - /* 7 */ ".accJJJcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 11 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".cKKKcKKKc." - /* 4 */ ".K.......K." - /* 5 */ ".c.......c." - /* 6 */ ".K.......K." - /* 7 */ ".cKKKcKKKc." - /* 8 */ "..........." - /* 9 */ "...........", - - // Connectors: - "-1: 5, 5, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 70, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // BarWithBasement - - - - //////////////////////////////////////////////////////////////////////////////// - // BarWithoutBasement: - // The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior - { - // Size: - 11, 9, 10, // SizeX = 11, SizeY = 9, SizeZ = 10 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A:126: 8\n" /* woodenslab */ - "B:128: 7\n" /* sandstonestairs */ - "C: 44: 1\n" /* step */ - "D: 64: 3\n" /* wooddoorblock */ - "E:128: 6\n" /* sandstonestairs */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f:128: 5\n" /* sandstonestairs */ - "g:107: 2\n" /* fencegate */ - "h:128: 4\n" /* sandstonestairs */ - "i:134: 1\n" /* 134 */ - "j:134: 3\n" /* 134 */ - "k: 85: 0\n" /* fence */ - "l:134: 0\n" /* 134 */ - "m: 19: 0\n" /* sponge */ - "n:134: 5\n" /* 134 */ - "o:134: 7\n" /* 134 */ - "p:134: 4\n" /* 134 */ - "q:107: 1\n" /* fencegate */ - "r: 64: 1\n" /* wooddoorblock */ - "s: 65: 3\n" /* ladder */ - "t: 50: 3\n" /* torch */ - "u:171: 8\n" /* carpet */ - "v:101: 0\n" /* ironbars */ - "w: 64: 8\n" /* wooddoorblock */ - "x:128: 2\n" /* sandstonestairs */ - "y: 24: 1\n" /* sandstone */ - "z: 44: 9\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmabbbammm" - /* 1 */ "mmmmbbbmmmm" - /* 2 */ "accccccccca" - /* 3 */ "ccccccccccc" - /* 4 */ "ccccccccccc" - /* 5 */ "ccccccccccc" - /* 6 */ "ccccccccccc" - /* 7 */ "ccccccccccc" - /* 8 */ "accccccccca" - /* 9 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmadddammm" - /* 1 */ "mmmmdddmmmm" - /* 2 */ "accceeeccca" - /* 3 */ "ceeeeeeeeec" - /* 4 */ "ceeeeeeeeec" - /* 5 */ "ceeeeeeeeec" - /* 6 */ "ceeeeeeeeec" - /* 7 */ "ceeeeeeeeec" - /* 8 */ "aecccccccca" - /* 9 */ "mmmmmmmmmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmma...ammm" - /* 1 */ "mmm.....mmm" - /* 2 */ "acccfghccca" - /* 3 */ "cij.....jjc" - /* 4 */ "cik.....klc" - /* 5 */ "c.........c" - /* 6 */ "cnoop.....c" - /* 7 */ "c...q..iklc" - /* 8 */ "arcccccccca" - /* 9 */ "mmsmmmmmmmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmma...ammm" - /* 1 */ "mmm.....mmm" - /* 2 */ "accc...ccca" - /* 3 */ "c..t...t..c" - /* 4 */ "c.u.....u.c" - /* 5 */ "v.........v" - /* 6 */ "c.........c" - /* 7 */ "c.......u.c" - /* 8 */ "awccvvvccca" - /* 9 */ "mmsmmmmmmmm" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmx...xmmm" - /* 1 */ "mmmy...cmmm" - /* 2 */ "acccfzhccca" - /* 3 */ "cAAAAAAAAAc" - /* 4 */ "cAAAAAAAAAc" - /* 5 */ "hAAAAAAAAAf" - /* 6 */ "cAAAAAAAAAc" - /* 7 */ "cAAAAAAAAAc" - /* 8 */ "acccBBBccca" - /* 9 */ "mmsmmmmmmmm" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmm.....mmm" - /* 1 */ "mmm.....mmm" - /* 2 */ "cCCCCcCCCCc" - /* 3 */ "CacccccccaC" - /* 4 */ "Cc.......cC" - /* 5 */ "cc.......cc" - /* 6 */ "Cc.......cC" - /* 7 */ "CaDccccccaC" - /* 8 */ "cC.CCcCCCCc" - /* 9 */ "mmmmmmmmmmm" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accvvvcca." - /* 4 */ ".c.......c." - /* 5 */ ".v.......v." - /* 6 */ ".c.......c." - /* 7 */ ".awcvvvcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accEEEcca." - /* 4 */ ".cAAAAAAAc." - /* 5 */ ".hAAAAAAAf." - /* 6 */ ".cAAAAAAAc." - /* 7 */ ".accBBBcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".cCCCcCCCc." - /* 4 */ ".C.......C." - /* 5 */ ".c.......c." - /* 6 */ ".C.......C." - /* 7 */ ".cCCCcCCCc." - /* 8 */ "..........." - /* 9 */ "...........", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // BarWithoutBasement - - - - //////////////////////////////////////////////////////////////////////////////// - // BlackSmith: - // The data has been exported from the gallery Desert, area index 97, ID 642, created by STR_Warrior - { - // Size: - 11, 6, 13, // SizeX = 11, SizeY = 6, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 12: 0\n" /* sand */ - "g: 64: 3\n" /* wooddoorblock */ - "h: 43: 0\n" /* doubleslab */ - "i: 53: 5\n" /* woodstairs */ - "j: 53: 4\n" /* woodstairs */ - "k: 10: 0\n" /* lava */ - "l: 54: 5\n" /* chest */ - "m: 19: 0\n" /* sponge */ - "n: 64: 8\n" /* wooddoorblock */ - "o: 50: 3\n" /* torch */ - "p:101: 0\n" /* ironbars */ - "q: 50: 1\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s:128: 2\n" /* sandstonestairs */ - "t: 44: 9\n" /* step */ - "u:126: 8\n" /* woodenslab */ - "v:128: 4\n" /* sandstonestairs */ - "w:128: 5\n" /* sandstonestairs */ - "x:128: 7\n" /* sandstonestairs */ - "y: 44: 1\n" /* step */ - "z: 43: 1\n" /* doubleslab */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmabbba" - /* 1 */ "mmmmmmbbbbm" - /* 2 */ "mmmmmmaccca" - /* 3 */ "maccccccccc" - /* 4 */ "mcccccccccc" - /* 5 */ "mcccccccccc" - /* 6 */ "mcccccacccc" - /* 7 */ "mcccccacccc" - /* 8 */ "acccaaacccc" - /* 9 */ "ccccccccccc" - /* 10 */ "ccccccccccc" - /* 11 */ "ccccccccccc" - /* 12 */ "accccccccca" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmaddda" - /* 1 */ "mmmmmmddddm" - /* 2 */ "mmmmmmaceca" - /* 3 */ "mafcfcceeec" - /* 4 */ "mcfccfceeec" - /* 5 */ "mcccccceeec" - /* 6 */ "mcffaaaeeec" - /* 7 */ "mffcaaaeeec" - /* 8 */ "acccaaaeeec" - /* 9 */ "ceeeeeeeeec" - /* 10 */ "ceeeeeeeeec" - /* 11 */ "ceeeeeeeeec" - /* 12 */ "accccccccca" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmma...a" - /* 1 */ "mmmmmm....." - /* 2 */ "mmmmmmacgca" - /* 3 */ "ma....c...c" - /* 4 */ "m.h...c...c" - /* 5 */ "m.....c...c" - /* 6 */ "m...aac...c" - /* 7 */ "mij.akc...c" - /* 8 */ "accccca...c" - /* 9 */ "cl........c" - /* 10 */ "c.........c" - /* 11 */ "c.........c" - /* 12 */ "accccccccca" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmma...a" - /* 1 */ "mmmmmm....." - /* 2 */ "mmmmmmacnca" - /* 3 */ "ma....c..oc" - /* 4 */ "m.....p...c" - /* 5 */ "m.....c...c" - /* 6 */ "m...ppc...p" - /* 7 */ "m...p.c...p" - /* 8 */ "accccca...p" - /* 9 */ "cq........c" - /* 10 */ "p.........c" - /* 11 */ "c........rc" - /* 12 */ "acccpppccca" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmms...s" - /* 1 */ "mmmmmmc...c" - /* 2 */ "mmmmmmaccca" - /* 3 */ "mattttcuuuc" - /* 4 */ "mtuuuuvuuuc" - /* 5 */ "mtuuuucuuuc" - /* 6 */ "mtuuaacuuuw" - /* 7 */ "mtuua.cuuuw" - /* 8 */ "acccccauuuw" - /* 9 */ "cuuuuuuuuuc" - /* 10 */ "vuuuuuuuuuc" - /* 11 */ "cuuuuuuuuuc" - /* 12 */ "acccxxxccca" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmm....." - /* 1 */ "mmmmmm....." - /* 2 */ "mmmmmmcyyyc" - /* 3 */ "my.y.yy...y" - /* 4 */ "m.....y...y" - /* 5 */ "my....y...y" - /* 6 */ "m...zyz...y" - /* 7 */ "my..y.y...c" - /* 8 */ "cyyyzyc...y" - /* 9 */ "y.........y" - /* 10 */ "y.........y" - /* 11 */ "y.........y" - /* 12 */ "cyyyycyyyyc", - - // Connectors: - "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 50, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // BlackSmith - - - - //////////////////////////////////////////////////////////////////////////////// - // LargeHouse1: - // The data has been exported from the gallery Desert, area index 77, ID 577, created by STR_Warrior - { - // Size: - 15, 14, 11, // SizeX = 15, SizeY = 14, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 14, 13, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 96:10\n" /* trapdoor */ - "B:128: 4\n" /* sandstonestairs */ - "C:128: 5\n" /* sandstonestairs */ - "D:128: 7\n" /* sandstonestairs */ - "E: 44: 1\n" /* step */ - "F:128: 2\n" /* sandstonestairs */ - "G:128: 0\n" /* sandstonestairs */ - "H: 87: 0\n" /* netherstone */ - "I:128: 3\n" /* sandstonestairs */ - "J: 51: 0\n" /* fire */ - "K: 44: 9\n" /* step */ - "a: 24: 2\n" /* sandstone */ - "b: 24: 0\n" /* sandstone */ - "c: 12: 0\n" /* sand */ - "d: 4: 0\n" /* cobblestone */ - "e: 5: 0\n" /* wood */ - "f: 13: 0\n" /* gravel */ - "g: 85: 0\n" /* fence */ - "h: 5: 1\n" /* wood */ - "i: 64: 2\n" /* wooddoorblock */ - "j: 64: 0\n" /* wooddoorblock */ - "k: 61: 2\n" /* furnace */ - "l:118: 0\n" /* cauldronblock */ - "m: 19: 0\n" /* sponge */ - "n:134: 4\n" /* 134 */ - "o: 65: 2\n" /* ladder */ - "p:101: 0\n" /* ironbars */ - "q: 50: 1\n" /* torch */ - "r:140: 0\n" /* flowerpotblock */ - "s: 64: 8\n" /* wooddoorblock */ - "t: 50: 3\n" /* torch */ - "u: 69:12\n" /* lever */ - "v: 50: 4\n" /* torch */ - "w:128: 6\n" /* sandstonestairs */ - "x: 44:10\n" /* step */ - "y:128: 1\n" /* sandstonestairs */ - "z: 47: 0\n" /* bookshelf */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmabbbbbbbamm" - /* 1 */ "ccccbbbbbbbbbma" - /* 2 */ "ccccbbbbbbbbbdd" - /* 3 */ "ccccbbbbbbbbbdd" - /* 4 */ "ccccbbbbbbbbbdd" - /* 5 */ "ccccbbbbbbbbbma" - /* 6 */ "ccccbbbbbbbbbmm" - /* 7 */ "mmmmbbbbbbbbbmm" - /* 8 */ "mmmmbbbbbbbbbmm" - /* 9 */ "mmmmbbbbbbbbbmm" - /* 10 */ "mmmmabbbbbbbamm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmabbbbbbbamm" - /* 1 */ "ccccbeeeeeeebma" - /* 2 */ "cccceeeeeeeebff" - /* 3 */ "ccccbeeeeeeeeff" - /* 4 */ "ccccbeeeeeeebff" - /* 5 */ "ccccbeeeeeeebma" - /* 6 */ "ccccbeeeeeeebmm" - /* 7 */ "mmmmbeeeeeeebmm" - /* 8 */ "mmmmbeeeeeeebmm" - /* 9 */ "mmmmbeeeeeeebmm" - /* 10 */ "mmmmabbbbbbbamm" - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmabbbbbbbamm" - /* 1 */ "ggggb......hb.a" - /* 2 */ "g...i.......b.." - /* 3 */ "g...b.......j.." - /* 4 */ "g...bkln..o.b.." - /* 5 */ "g...bbbb.bbbb.a" - /* 6 */ "ggggb.......bmm" - /* 7 */ "mmmmb.......bmm" - /* 8 */ "mmmmb.......bmm" - /* 9 */ "mmmmb.......bmm" - /* 10 */ "mmmmabbbbbbbamm" - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmabbpppbbamm" - /* 1 */ "....bq.....rb.a" - /* 2 */ "....s.......b.t" - /* 3 */ "....b.......s.." - /* 4 */ "....b.u...o.b.v" - /* 5 */ "....bbbb.bbbb.a" - /* 6 */ "....p..t.t..pmm" - /* 7 */ "mmmmp.......pmm" - /* 8 */ "mmmmp.......pmm" - /* 9 */ "mmmmb.......bmm" - /* 10 */ "mmmmabbpppbbamm" - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmabbwwwbbamm" - /* 1 */ "....bxxxxxxxbby" - /* 2 */ "....bxxxxxxxb.." - /* 3 */ "....bxxxxxxxb.." - /* 4 */ "....bzzzxxAxb.." - /* 5 */ "....bbbbbbbbbby" - /* 6 */ "....BxxxxxxxCmm" - /* 7 */ "mmmmBxxxxxxxCmm" - /* 8 */ "mmmmBxxxxxxxCmm" - /* 9 */ "mmmmbxxxxxxxbmm" - /* 10 */ "mmmmabbDDDbbamm" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmbEEEbEEEbmm" - /* 1 */ "....EabbbbbaE.." - /* 2 */ "....Eb.....bE.." - /* 3 */ "....Eb.....bE.." - /* 4 */ "....Eb.....bE.." - /* 5 */ "....babb.bbab.." - /* 6 */ "....E.......Emm" - /* 7 */ "mmmmE.......Emm" - /* 8 */ "mmmmE.......Emm" - /* 9 */ "mmmmE.......Emm" - /* 10 */ "mmmmbEEEbEEEbmm" - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".....abbpbba..." - /* 2 */ ".....p.....p..." - /* 3 */ ".....p.....p..." - /* 4 */ ".....p.....p..." - /* 5 */ ".....abb.bba..." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".....abbwbba..." - /* 2 */ ".....BxxxxxC..." - /* 3 */ ".....BxxxxxC..." - /* 4 */ ".....BxxxxxC..." - /* 5 */ ".....abbbbba..." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".....bEEbEEb..." - /* 2 */ ".....E.bbb.E..." - /* 3 */ ".....b.bbb.b..." - /* 4 */ ".....E.bbb.E..." - /* 5 */ ".....bEEbEEb..." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 9 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......aFa....." - /* 3 */ ".......GHy....." - /* 4 */ ".......aIa....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 10 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......a.a....." - /* 3 */ "........J......" - /* 4 */ ".......a.a....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 11 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......awa....." - /* 3 */ ".......B.C....." - /* 4 */ ".......aDa....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 12 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......bbb....." - /* 3 */ ".......bKb....." - /* 4 */ ".......bbb....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 13 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......E.E....." - /* 3 */ "..............." - /* 4 */ ".......E.E....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "...............", - - // Connectors: - "-1: 14, 2, 3: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 60, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LargeHouse1 - - - - //////////////////////////////////////////////////////////////////////////////// - // LargeTower: - // The data has been exported from the gallery Desert, area index 80, ID 596, created by STR_Warrior - { - // Size: - 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 11, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 12: 0\n" /* sand */ - "d: 5: 0\n" /* wood */ - "e: 13: 0\n" /* gravel */ - "f:128: 2\n" /* sandstonestairs */ - "g:128: 0\n" /* sandstonestairs */ - "h: 24: 2\n" /* sandstone */ - "i: 71: 3\n" /* irondoorblock */ - "j:128: 1\n" /* sandstonestairs */ - "k:128: 3\n" /* sandstonestairs */ - "l: 77: 4\n" /* stonebutton */ - "m: 19: 0\n" /* sponge */ - "n: 71: 8\n" /* irondoorblock */ - "o: 77: 3\n" /* stonebutton */ - "p:128: 6\n" /* sandstonestairs */ - "q:128: 4\n" /* sandstonestairs */ - "r:128: 5\n" /* sandstonestairs */ - "s: 50: 4\n" /* torch */ - "t:128: 7\n" /* sandstonestairs */ - "u: 85: 0\n" /* fence */ - "v: 24: 1\n" /* sandstone */ - "w: 44: 1\n" /* step */ - "x: 89: 0\n" /* lightstone */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mabbbam" - /* 1 */ "aacdcaa" - /* 2 */ "madddam" - /* 3 */ "madddam" - /* 4 */ "madddam" - /* 5 */ "aaaaaaa" - /* 6 */ "mammmam" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "maeeeam" - /* 1 */ "aacdcaa" - /* 2 */ "madddam" - /* 3 */ "madddam" - /* 4 */ "madddam" - /* 5 */ "aaaaaaa" - /* 6 */ "mammmam" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mf...fm" - /* 1 */ "ghaiahj" - /* 2 */ "ma...am" - /* 3 */ "ma...am" - /* 4 */ "ma...am" - /* 5 */ "ghaaahj" - /* 6 */ "mkmmmkm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "m.l...m" - /* 1 */ ".hanah." - /* 2 */ ".ao..a." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ ".haaah." - /* 6 */ "m.....m" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..pap.." - /* 2 */ ".q...r." - /* 3 */ ".a...a." - /* 4 */ ".q.s.r." - /* 5 */ "..tat.." - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..aua.." - /* 2 */ ".a...a." - /* 3 */ ".u...u." - /* 4 */ ".a...a." - /* 5 */ "..aua.." - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..aua.." - /* 2 */ ".a...a." - /* 3 */ ".u...u." - /* 4 */ ".a...a." - /* 5 */ "..aua.." - /* 6 */ "......." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..aua.." - /* 2 */ ".a...a." - /* 3 */ ".u...u." - /* 4 */ ".a...a." - /* 5 */ "..aua.." - /* 6 */ "......." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..faf.." - /* 2 */ ".g...j." - /* 3 */ ".a...a." - /* 4 */ ".g...j." - /* 5 */ "..kak.." - /* 6 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aavaa." - /* 2 */ ".a...a." - /* 3 */ ".v...v." - /* 4 */ ".a...a." - /* 5 */ ".aavaa." - /* 6 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "...p..." - /* 1 */ ".haaah." - /* 2 */ ".awwwa." - /* 3 */ "qawawar" - /* 4 */ ".awwwa." - /* 5 */ ".haaah." - /* 6 */ "...t..." - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "...w..." - /* 1 */ ".w...w." - /* 2 */ "......." - /* 3 */ "w..x..w" - /* 4 */ "......." - /* 5 */ ".w...w." - /* 6 */ "...w...", - - // Connectors: - "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LargeTower - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse: - // The data has been exported from the gallery Desert, area index 65, ID 551, created by STR_Warrior - { - // Size: - 5, 6, 7, // SizeX = 5, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 5, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 61: 2\n" /* furnace */ - "h: 65: 2\n" /* ladder */ - "i: 64: 8\n" /* wooddoorblock */ - "j:101: 0\n" /* ironbars */ - "k: 50: 4\n" /* torch */ - "l:128: 2\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:126: 8\n" /* woodenslab */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 5\n" /* sandstonestairs */ - "q:128: 7\n" /* sandstonestairs */ - "r: 44: 1\n" /* step */ - "s: 96: 2\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "abbba" - /* 1 */ "mbbbm" - /* 2 */ "accca" - /* 3 */ "ccccc" - /* 4 */ "ccccc" - /* 5 */ "ccccc" - /* 6 */ "accca" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "addda" - /* 1 */ "mdddm" - /* 2 */ "aceca" - /* 3 */ "ceeec" - /* 4 */ "ceeec" - /* 5 */ "ceeec" - /* 6 */ "accca" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acfca" - /* 3 */ "c...c" - /* 4 */ "c...c" - /* 5 */ "cg.hc" - /* 6 */ "accca" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acica" - /* 3 */ "c...c" - /* 4 */ "j...j" - /* 5 */ "ck.hc" - /* 6 */ "acjca" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "l...l" - /* 1 */ "c...c" - /* 2 */ "accca" - /* 3 */ "cnnnc" - /* 4 */ "onnnp" - /* 5 */ "cnnhc" - /* 6 */ "acqca" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "crcrc" - /* 3 */ "r...r" - /* 4 */ "c...c" - /* 5 */ "r..sr" - /* 6 */ "crcrc", - - // Connectors: - "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse2: - // The data has been exported from the gallery Desert, area index 72, ID 562, created by STR_Warrior - { - // Size: - 7, 6, 11, // SizeX = 7, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 12: 0\n" /* sand */ - "e: 13: 0\n" /* gravel */ - "f: 5: 0\n" /* wood */ - "g: 64: 3\n" /* wooddoorblock */ - "h: 65: 5\n" /* ladder */ - "i: 85: 0\n" /* fence */ - "j:101: 0\n" /* ironbars */ - "k: 64: 8\n" /* wooddoorblock */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n:128: 2\n" /* sandstonestairs */ - "o:128: 6\n" /* sandstonestairs */ - "p:126: 8\n" /* woodenslab */ - "q:128: 4\n" /* sandstonestairs */ - "r:128: 5\n" /* sandstonestairs */ - "s:128: 7\n" /* sandstonestairs */ - "t: 44: 1\n" /* step */ - "u: 96: 0\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mabbbam" - /* 1 */ "mmbbbmm" - /* 2 */ "accccca" - /* 3 */ "ccccccc" - /* 4 */ "ccccccc" - /* 5 */ "ccccccc" - /* 6 */ "accccca" - /* 7 */ "ddddddd" - /* 8 */ "ddddddd" - /* 9 */ "ddddddd" - /* 10 */ "ddddddd" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "maeeeam" - /* 1 */ "mmeeemm" - /* 2 */ "acccfca" - /* 3 */ "cfffffc" - /* 4 */ "cfffffc" - /* 5 */ "cfffffc" - /* 6 */ "acfccca" - /* 7 */ "ddddddd" - /* 8 */ "ddddddd" - /* 9 */ "ddddddd" - /* 10 */ "ddddddd" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "ma...am" - /* 1 */ "m.....m" - /* 2 */ "acccgca" - /* 3 */ "c.....c" - /* 4 */ "c.....c" - /* 5 */ "ch....c" - /* 6 */ "ac.ccca" - /* 7 */ "i.....i" - /* 8 */ "i.....i" - /* 9 */ "i.....i" - /* 10 */ "iiiiiii" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "ma...am" - /* 1 */ "m.....m" - /* 2 */ "acjckca" - /* 3 */ "c..l..c" - /* 4 */ "j.....j" - /* 5 */ "ch....c" - /* 6 */ "ac.cjca" - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mn...nm" - /* 1 */ "mc...cm" - /* 2 */ "acoccca" - /* 3 */ "cpppppc" - /* 4 */ "qpppppr" - /* 5 */ "chppppc" - /* 6 */ "acccsca" - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "m.....m" - /* 1 */ "m.....m" - /* 2 */ "cttcttc" - /* 3 */ "t.....t" - /* 4 */ "c.....c" - /* 5 */ "tu....t" - /* 6 */ "cttcttc" - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ ".......", - - // Connectors: - "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse2 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse3: - // The data has been exported from the gallery Desert, area index 66, ID 553, created by STR_Warrior - { - // Size: - 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 65: 2\n" /* ladder */ - "h: 64: 8\n" /* wooddoorblock */ - "i:101: 0\n" /* ironbars */ - "j: 50: 4\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:126: 8\n" /* woodenslab */ - "m: 19: 0\n" /* sponge */ - "n:128: 4\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */ - "q: 44: 1\n" /* step */ - "r: 96: 2\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmabbbamm" - /* 1 */ "mmmbbbmmm" - /* 2 */ "accccccca" - /* 3 */ "ccccccccc" - /* 4 */ "ccccccccc" - /* 5 */ "ccccccccc" - /* 6 */ "accccccca" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmadddamm" - /* 1 */ "mmmdddmmm" - /* 2 */ "accceccca" - /* 3 */ "ceeeeeeec" - /* 4 */ "ceeeeeeec" - /* 5 */ "ceeeeeeec" - /* 6 */ "accccccca" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mma...amm" - /* 1 */ "mm.....mm" - /* 2 */ "acccfccca" - /* 3 */ "c.......c" - /* 4 */ "c.......c" - /* 5 */ "c......gc" - /* 6 */ "accccccca" - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mma...amm" - /* 1 */ "mm.....mm" - /* 2 */ "accchccca" - /* 3 */ "c.......c" - /* 4 */ "i.......i" - /* 5 */ "c.j....gc" - /* 6 */ "acciiicca" - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmk...kmm" - /* 1 */ "mmc...cmm" - /* 2 */ "accccccca" - /* 3 */ "clllllllc" - /* 4 */ "nlllllllo" - /* 5 */ "cllllllgc" - /* 6 */ "accpppcca" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mm.....mm" - /* 1 */ "mm.....mm" - /* 2 */ "cqqqcqqqc" - /* 3 */ "q.......q" - /* 4 */ "c.......c" - /* 5 */ "q......rq" - /* 6 */ "cqqqcqqqc", - - // Connectors: - "-1: 4, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse3 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse4: - // The data has been exported from the gallery Desert, area index 70, ID 560, created by STR_Warrior - { - // Size: - 5, 6, 11, // SizeX = 5, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 5, 5, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 65: 5\n" /* ladder */ - "h:134: 3\n" /* 134 */ - "i: 85: 0\n" /* fence */ - "j:134: 2\n" /* 134 */ - "k: 61: 2\n" /* furnace */ - "l:134: 6\n" /* 134 */ - "m: 19: 0\n" /* sponge */ - "n:134: 4\n" /* 134 */ - "o: 64: 8\n" /* wooddoorblock */ - "p: 50: 2\n" /* torch */ - "q:101: 0\n" /* ironbars */ - "r:171: 8\n" /* carpet */ - "s:128: 2\n" /* sandstonestairs */ - "t:126: 8\n" /* woodenslab */ - "u:128: 4\n" /* sandstonestairs */ - "v:128: 5\n" /* sandstonestairs */ - "w:128: 7\n" /* sandstonestairs */ - "x: 44: 1\n" /* step */ - "y: 96: 1\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "abbba" - /* 1 */ "mbbbm" - /* 2 */ "accca" - /* 3 */ "ccccc" - /* 4 */ "ccccc" - /* 5 */ "ccccc" - /* 6 */ "ccccc" - /* 7 */ "ccccc" - /* 8 */ "ccccc" - /* 9 */ "ccccc" - /* 10 */ "accca" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "addda" - /* 1 */ "mdddm" - /* 2 */ "aceca" - /* 3 */ "ceeec" - /* 4 */ "ceeec" - /* 5 */ "ceeec" - /* 6 */ "ceeec" - /* 7 */ "ceeec" - /* 8 */ "ceeec" - /* 9 */ "ceeec" - /* 10 */ "accca" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acfca" - /* 3 */ "cg..c" - /* 4 */ "c...c" - /* 5 */ "c..hc" - /* 6 */ "c..ic" - /* 7 */ "c..jc" - /* 8 */ "c...c" - /* 9 */ "cklnc" - /* 10 */ "accca" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acoca" - /* 3 */ "cg..c" - /* 4 */ "c..pc" - /* 5 */ "q...q" - /* 6 */ "q..rq" - /* 7 */ "q...q" - /* 8 */ "c...c" - /* 9 */ "c...c" - /* 10 */ "acqca" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "s...s" - /* 1 */ "c...c" - /* 2 */ "accca" - /* 3 */ "cgttc" - /* 4 */ "ctttc" - /* 5 */ "utttv" - /* 6 */ "utttv" - /* 7 */ "utttv" - /* 8 */ "ctttc" - /* 9 */ "ctttc" - /* 10 */ "acwca" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "cxcxc" - /* 3 */ "xy..x" - /* 4 */ "x...x" - /* 5 */ "x...x" - /* 6 */ "c...c" - /* 7 */ "x...x" - /* 8 */ "x...x" - /* 9 */ "x...x" - /* 10 */ "cxcxc", - - // Connectors: - "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse4 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse5: - // The data has been exported from the gallery Desert, area index 68, ID 558, created by STR_Warrior - { - // Size: - 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 65: 2\n" /* ladder */ - "h: 64: 8\n" /* wooddoorblock */ - "i:101: 0\n" /* ironbars */ - "j: 50: 1\n" /* torch */ - "k: 50: 4\n" /* torch */ - "l:128: 2\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:126: 8\n" /* woodenslab */ - "o:128: 6\n" /* sandstonestairs */ - "p:128: 5\n" /* sandstonestairs */ - "q:128: 4\n" /* sandstonestairs */ - "r:128: 7\n" /* sandstonestairs */ - "s: 44: 1\n" /* step */ - "t: 96: 2\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmmabbba" - /* 1 */ "mmmmmbbbm" - /* 2 */ "mmmmaccca" - /* 3 */ "mmmmccccc" - /* 4 */ "acccacccc" - /* 5 */ "ccccccccc" - /* 6 */ "ccccccccc" - /* 7 */ "ccccccccc" - /* 8 */ "accccccca" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmaddda" - /* 1 */ "mmmmmdddm" - /* 2 */ "mmmmaceca" - /* 3 */ "mmmmceeec" - /* 4 */ "acccaeeec" - /* 5 */ "ceeeeeeec" - /* 6 */ "ceeeeeeec" - /* 7 */ "ceeeeeeec" - /* 8 */ "accccccca" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 2 */ "mmmmacfca" - /* 3 */ "mmmmc...c" - /* 4 */ "accca...c" - /* 5 */ "c.......c" - /* 6 */ "c.......c" - /* 7 */ "c......gc" - /* 8 */ "accccccca" - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 2 */ "mmmmachca" - /* 3 */ "mmmmc...c" - /* 4 */ "acica...i" - /* 5 */ "c.......i" - /* 6 */ "i.......i" - /* 7 */ "cj....kgc" - /* 8 */ "acciiicca" - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmmml...l" - /* 1 */ "mmmmc...c" - /* 2 */ "mmmmaccca" - /* 3 */ "mmmmcnnnc" - /* 4 */ "acocannnp" - /* 5 */ "cnnnnnnnp" - /* 6 */ "qnnnnnnnp" - /* 7 */ "cnnnnnngc" - /* 8 */ "accrrrcca" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mmmm....." - /* 1 */ "mmmm....." - /* 2 */ "mmmmcscsc" - /* 3 */ "mmmms...s" - /* 4 */ "csssc...c" - /* 5 */ "s.......s" - /* 6 */ "s.......s" - /* 7 */ "s......ts" - /* 8 */ "cssscsssc", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse5 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse6: - // The data has been exported from the gallery Desert, area index 69, ID 559, created by STR_Warrior - { - // Size: - 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 96: 2\n" /* trapdoor */ - "a: 12: 0\n" /* sand */ - "b: 24: 2\n" /* sandstone */ - "c: 4: 0\n" /* cobblestone */ - "d: 3: 0\n" /* dirt */ - "e: 24: 0\n" /* sandstone */ - "f: 13: 0\n" /* gravel */ - "g: 2: 0\n" /* grass */ - "h: 5: 0\n" /* wood */ - "i: 85: 0\n" /* fence */ - "j: 64: 3\n" /* wooddoorblock */ - "k: 38: 1\n" /* rose */ - "l: 38: 2\n" /* rose */ - "m: 19: 0\n" /* sponge */ - "n: 38: 5\n" /* rose */ - "o: 65: 2\n" /* ladder */ - "p: 64: 8\n" /* wooddoorblock */ - "q:101: 0\n" /* ironbars */ - "r: 50: 1\n" /* torch */ - "s: 50: 4\n" /* torch */ - "t:128: 2\n" /* sandstonestairs */ - "u:126: 8\n" /* woodenslab */ - "v:128: 6\n" /* sandstonestairs */ - "w:128: 5\n" /* sandstonestairs */ - "x:128: 4\n" /* sandstonestairs */ - "y:128: 7\n" /* sandstonestairs */ - "z: 44: 1\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "aaaabcccb" - /* 1 */ "adddccccm" - /* 2 */ "adddbeeeb" - /* 3 */ "adddeeeee" - /* 4 */ "beeebeeee" - /* 5 */ "eeeeeeeee" - /* 6 */ "eeeeeeeee" - /* 7 */ "eeeeeeeee" - /* 8 */ "beeeeeeeb" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "aaaabfffb" - /* 1 */ "agggffffm" - /* 2 */ "agggbeheb" - /* 3 */ "agggehhhe" - /* 4 */ "beeebhhhe" - /* 5 */ "ehhhhhhhe" - /* 6 */ "ehhhhhhhe" - /* 7 */ "ehhhhhhhe" - /* 8 */ "beeeeeeeb" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "iiiib...b" - /* 1 */ "i........" - /* 2 */ "i...bejeb" - /* 3 */ "iklne...e" - /* 4 */ "beeeb...e" - /* 5 */ "e.......e" - /* 6 */ "e.......e" - /* 7 */ "e......oe" - /* 8 */ "beeeeeeeb" - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "....b...b" - /* 1 */ "........." - /* 2 */ "....bepeb" - /* 3 */ "....e...e" - /* 4 */ "beqeb...q" - /* 5 */ "e.......q" - /* 6 */ "q.......q" - /* 7 */ "er....soe" - /* 8 */ "beeqqqeeb" - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "....t...t" - /* 1 */ "....e...e" - /* 2 */ "....beeeb" - /* 3 */ "....euuue" - /* 4 */ "bevebuuuw" - /* 5 */ "euuuuuuuw" - /* 6 */ "xuuuuuuuw" - /* 7 */ "euuuuuuoe" - /* 8 */ "beeyyyeeb" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "....ezeze" - /* 3 */ "....z...z" - /* 4 */ "ezzze...e" - /* 5 */ "z.......z" - /* 6 */ "z.......z" - /* 7 */ "z......Az" - /* 8 */ "ezzzezzze", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse6 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse7: - // The data has been exported from the gallery Desert, area index 73, ID 563, created by xoft - { - // Size: - 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 65: 2\n" /* ladder */ - "h:101: 0\n" /* ironbars */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 50: 1\n" /* torch */ - "k: 50: 2\n" /* torch */ - "l:128: 2\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:126: 8\n" /* woodenslab */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 5\n" /* sandstonestairs */ - "r:128: 7\n" /* sandstonestairs */ - "s: 44: 1\n" /* step */ - "t: 96: 2\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmmabbba" - /* 1 */ "mmmmmbbbm" - /* 2 */ "accccccca" - /* 3 */ "ccccccccc" - /* 4 */ "ccccccccc" - /* 5 */ "ccccccccc" - /* 6 */ "acccacccc" - /* 7 */ "mmmmccccc" - /* 8 */ "mmmmccccc" - /* 9 */ "mmmmccccc" - /* 10 */ "mmmmaccca" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmaddda" - /* 1 */ "mmmmmdddm" - /* 2 */ "accccceca" - /* 3 */ "ceeeeeeec" - /* 4 */ "ceeeeeeec" - /* 5 */ "ceeeeeeec" - /* 6 */ "acccaeeec" - /* 7 */ "mmmmceeec" - /* 8 */ "mmmmceeec" - /* 9 */ "mmmmceeec" - /* 10 */ "mmmmaccca" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 2 */ "acccccfca" - /* 3 */ "c.......c" - /* 4 */ "c.......c" - /* 5 */ "c.......c" - /* 6 */ "accca...c" - /* 7 */ "mmmmc...c" - /* 8 */ "mmmmc...c" - /* 9 */ "mmmmc..gc" - /* 10 */ "mmmmaccca" - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 2 */ "achcccica" - /* 3 */ "c.......c" - /* 4 */ "h.......c" - /* 5 */ "cj......h" - /* 6 */ "achca...h" - /* 7 */ "mmmmc...h" - /* 8 */ "mmmmh..kc" - /* 9 */ "mmmmc..gc" - /* 10 */ "mmmmachca" - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmmml...l" - /* 1 */ "mmmmc...c" - /* 2 */ "acnccccca" - /* 3 */ "coooooooc" - /* 4 */ "poooooooc" - /* 5 */ "coooooooq" - /* 6 */ "acrcaoooq" - /* 7 */ "mmmmcoooq" - /* 8 */ "mmmmpoooc" - /* 9 */ "mmmmcoogc" - /* 10 */ "mmmmacrca" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mmmm....." - /* 1 */ "mmmm....." - /* 2 */ "cssscscsc" - /* 3 */ "s.......s" - /* 4 */ "s.......s" - /* 5 */ "s.......s" - /* 6 */ "csssc...c" - /* 7 */ "mmmms...s" - /* 8 */ "mmmms...s" - /* 9 */ "mmmms..ts" - /* 10 */ "mmmmcsssc", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse7 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse8: - // The data has been exported from the gallery Desert, area index 99, ID 739, created by STR_Warrior - { - // Size: - 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 9, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 24: 0\n" /* sandstone */ - "c: 4: 0\n" /* cobblestone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 2\n" /* wooddoorblock */ - "g: 65: 2\n" /* ladder */ - "h:101: 0\n" /* ironbars */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 50: 1\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:126: 8\n" /* woodenslab */ - "m: 19: 0\n" /* sponge */ - "n:128: 5\n" /* sandstonestairs */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */ - "q: 44: 1\n" /* step */ - "r: 96: 2\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmmabbba" - /* 1 */ "ccccbbbbb" - /* 2 */ "ccccbbbbb" - /* 3 */ "ccccbbbbb" - /* 4 */ "abbbabbbb" - /* 5 */ "bbbbbbbbb" - /* 6 */ "bbbbbbbbb" - /* 7 */ "bbbbbbbbb" - /* 8 */ "abbbbbbba" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmabbba" - /* 1 */ "ddddbeeeb" - /* 2 */ "ddddeeeeb" - /* 3 */ "ddddbeeeb" - /* 4 */ "abbbaeeeb" - /* 5 */ "beeeeeeeb" - /* 6 */ "beeeeeeeb" - /* 7 */ "beeeeeeeb" - /* 8 */ "abbbbbbba" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmmabbba" - /* 1 */ "....b...b" - /* 2 */ "....f...b" - /* 3 */ "....b...b" - /* 4 */ "abbba...b" - /* 5 */ "b.......b" - /* 6 */ "b.......b" - /* 7 */ "b......gb" - /* 8 */ "abbbbbbba" - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mmmmabhba" - /* 1 */ "....b...b" - /* 2 */ "....i...b" - /* 3 */ "....b...h" - /* 4 */ "abhbaj..h" - /* 5 */ "b.......h" - /* 6 */ "h.......b" - /* 7 */ "b......gb" - /* 8 */ "abbhhhbba" - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmmmabkba" - /* 1 */ "....blllb" - /* 2 */ "....blllb" - /* 3 */ "....bllln" - /* 4 */ "abkballln" - /* 5 */ "bllllllln" - /* 6 */ "olllllllb" - /* 7 */ "bllllllgb" - /* 8 */ "abbpppbba" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mmmmbqbqb" - /* 1 */ "....q...q" - /* 2 */ "....q...q" - /* 3 */ "....q...q" - /* 4 */ "bqqqb...b" - /* 5 */ "q.......q" - /* 6 */ "b.......q" - /* 7 */ "q......rq" - /* 8 */ "bqqqbqqqb", - - // Connectors: - "-1: 0, 2, 2: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse8 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleTower: - // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior - { - // Size: - 5, 9, 7, // SizeX = 5, SizeY = 9, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 5, 8, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 65: 5\n" /* ladder */ - "h: 64: 8\n" /* wooddoorblock */ - "i:101: 0\n" /* ironbars */ - "j: 50: 4\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:126: 8\n" /* woodenslab */ - "m: 19: 0\n" /* sponge */ - "n:128: 4\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */ - "q:128: 6\n" /* sandstonestairs */ - "r: 44: 1\n" /* step */ - "s: 96: 1\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "abbba" - /* 1 */ "mbbbm" - /* 2 */ "accca" - /* 3 */ "ccccc" - /* 4 */ "ccccc" - /* 5 */ "ccccc" - /* 6 */ "accca" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "addda" - /* 1 */ "mdddm" - /* 2 */ "aceca" - /* 3 */ "ceeec" - /* 4 */ "ceeec" - /* 5 */ "ceeec" - /* 6 */ "accca" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acfca" - /* 3 */ "cg..c" - /* 4 */ "c...c" - /* 5 */ "c...c" - /* 6 */ "accca" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "achca" - /* 3 */ "cg..c" - /* 4 */ "i...i" - /* 5 */ "c..jc" - /* 6 */ "acica" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "k...k" - /* 1 */ "c...c" - /* 2 */ "accca" - /* 3 */ "cgllc" - /* 4 */ "nlllo" - /* 5 */ "clllc" - /* 6 */ "acpca" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "accca" - /* 3 */ "cg..c" - /* 4 */ "c...c" - /* 5 */ "c...c" - /* 6 */ "accca" - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "acica" - /* 3 */ "cg..c" - /* 4 */ "i...i" - /* 5 */ "c..jc" - /* 6 */ "acica" - - // Level 7 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "acqca" - /* 3 */ "cgllc" - /* 4 */ "nlllo" - /* 5 */ "clllc" - /* 6 */ "acpca" - - // Level 8 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "crcrc" - /* 3 */ "rs..r" - /* 4 */ "c...c" - /* 5 */ "r...r" - /* 6 */ "crcrc", - - // Connectors: - "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleTower - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumHouse1: - // The data has been exported from the gallery Desert, area index 71, ID 561, created by STR_Warrior - { - // Size: - 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 8, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 12: 0\n" /* sand */ - "g: 64: 3\n" /* wooddoorblock */ - "h: 85: 0\n" /* fence */ - "i: 64: 0\n" /* wooddoorblock */ - "j: 65: 5\n" /* ladder */ - "k: 64: 8\n" /* wooddoorblock */ - "l:101: 0\n" /* ironbars */ - "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o:128: 2\n" /* sandstonestairs */ - "p:126: 8\n" /* woodenslab */ - "q:128: 4\n" /* sandstonestairs */ - "r:128: 7\n" /* sandstonestairs */ - "s: 44: 1\n" /* step */ - "t: 50: 3\n" /* torch */ - "u:128: 6\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmabbbammmmmmm" - /* 1 */ "mmmmbbbmmmmmmmm" - /* 2 */ "acccccccccacccc" - /* 3 */ "ccccccccccccccc" - /* 4 */ "ccccccccccccccc" - /* 5 */ "ccccccccccccccc" - /* 6 */ "ccccccccccccccc" - /* 7 */ "ccccccccccccccc" - /* 8 */ "acccccccccacccc" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmadddammmmmmm" - /* 1 */ "mmmmdddmmmmmmmm" - /* 2 */ "acccceccccaffff" - /* 3 */ "ceeeeeeeeecffff" - /* 4 */ "ceeeeeeeeecffff" - /* 5 */ "ceeeeeeeeeeffff" - /* 6 */ "ceeeeeeeeecffff" - /* 7 */ "ceeeeeeeeecffff" - /* 8 */ "acccccccccaffff" - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmma...ammmmmmm" - /* 1 */ "mmm.....mmmmmmm" - /* 2 */ "accccgccccahhhh" - /* 3 */ "c.........c...h" - /* 4 */ "c.........c...h" - /* 5 */ "c.........i...h" - /* 6 */ "c.........c...h" - /* 7 */ "c.........cj..h" - /* 8 */ "acccccccccahhhh" - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmma...ammmmmmm" - /* 1 */ "mmm.....mmmmmmm" - /* 2 */ "acccckcccca...." - /* 3 */ "c.........c...." - /* 4 */ "l.........c...." - /* 5 */ "l.........k...." - /* 6 */ "l.........c...." - /* 7 */ "c..n...n..cj..." - /* 8 */ "accclllccca...." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmo...ommmmmmm" - /* 1 */ "mmmc...cmmmmmmm" - /* 2 */ "accccccccca...." - /* 3 */ "cpppppppppc...." - /* 4 */ "qpppppppppc...." - /* 5 */ "qpppppppppc...." - /* 6 */ "qpppppppppc...." - /* 7 */ "cpppppppppcj..." - /* 8 */ "acccrrrccca...." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmm.....mmmmmmm" - /* 1 */ "mmm.....mmmmmmm" - /* 2 */ "csssscssssc...." - /* 3 */ "s..accca..s...." - /* 4 */ "s..c...c..s...." - /* 5 */ "c.........c...." - /* 6 */ "s..c...c..s...." - /* 7 */ "s..accca..s...." - /* 8 */ "csssscssssc...." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...aclca......." - /* 4 */ "...ct..c......." - /* 5 */ "..............." - /* 6 */ "...c...c......." - /* 7 */ "...aclca......." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...acuca......." - /* 4 */ "...cpppc......." - /* 5 */ "...cpppc......." - /* 6 */ "...cpppc......." - /* 7 */ "...acrca......." - /* 8 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...cscsc......." - /* 4 */ "...s...s......." - /* 5 */ "...c...c......." - /* 6 */ "...s...s......." - /* 7 */ "...cscsc......." - /* 8 */ "...............", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumHouse1 - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumHouse2: - // The data has been exported from the gallery Desert, area index 74, ID 573, created by STR_Warrior - { - // Size: - 11, 10, 9, // SizeX = 11, SizeY = 10, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 9, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A:128: 7\n" /* sandstonestairs */ - "B: 44: 1\n" /* step */ - "C: 96: 3\n" /* trapdoor */ - "D: 96: 2\n" /* trapdoor */ - "E:128: 2\n" /* sandstonestairs */ - "F:128: 0\n" /* sandstonestairs */ - "G: 87: 0\n" /* netherstone */ - "H:128: 1\n" /* sandstonestairs */ - "I:128: 3\n" /* sandstonestairs */ - "J: 51: 0\n" /* fire */ - "K: 44: 9\n" /* step */ - "a: 24: 2\n" /* sandstone */ - "b: 24: 0\n" /* sandstone */ - "c: 4: 0\n" /* cobblestone */ - "d: 12: 0\n" /* sand */ - "e: 13: 0\n" /* gravel */ - "f: 5: 0\n" /* wood */ - "g: 65: 3\n" /* ladder */ - "h: 85: 0\n" /* fence */ - "i: 64: 3\n" /* wooddoorblock */ - "j:134: 1\n" /* 134 */ - "k:134: 2\n" /* 134 */ - "l: 61: 2\n" /* furnace */ - "m: 19: 0\n" /* sponge */ - "n:134: 6\n" /* 134 */ - "o:134: 4\n" /* 134 */ - "p: 65: 2\n" /* ladder */ - "q:101: 0\n" /* ironbars */ - "r: 50: 2\n" /* torch */ - "s: 47: 0\n" /* bookshelf */ - "t: 64: 8\n" /* wooddoorblock */ - "u: 50: 3\n" /* torch */ - "v:171: 8\n" /* carpet */ - "w:128: 6\n" /* sandstonestairs */ - "x:126: 8\n" /* woodenslab */ - "y:128: 5\n" /* sandstonestairs */ - "z:128: 4\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "abbbammmcmm" - /* 1 */ "bbbbbdddcdm" - /* 2 */ "bbbbbmmmcdm" - /* 3 */ "bbbbbmmmcdm" - /* 4 */ "bbbbabbbbba" - /* 5 */ "bbbbbbbbbbb" - /* 6 */ "bbbbbbbbbbb" - /* 7 */ "bbbbbbbbbbb" - /* 8 */ "abbbbbbbbba" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "abbbammmemm" - /* 1 */ "bfffbdddedm" - /* 2 */ "bfffbmmmedm" - /* 3 */ "bfffbmmmedm" - /* 4 */ "bfffabbbfba" - /* 5 */ "bfffffffffb" - /* 6 */ "bfffffffffb" - /* 7 */ "bfffffffffb" - /* 8 */ "abbbbbbbbba" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "abbba......" - /* 1 */ "bg..bhhh.h." - /* 2 */ "b...b....h." - /* 3 */ "b...b....h." - /* 4 */ "b...abbbiba" - /* 5 */ "b.........b" - /* 6 */ "bjh.......b" - /* 7 */ "bjk.lno..pb" - /* 8 */ "abbbbbbbbba" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "abqba......" - /* 1 */ "bg..q......" - /* 2 */ "b...q......" - /* 3 */ "q..rb......" - /* 4 */ "q...sbqbtba" - /* 5 */ "q......u..b" - /* 6 */ "b.v.......q" - /* 7 */ "b........pb" - /* 8 */ "abbbqqqbbba" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "abwba......" - /* 1 */ "bgxxy......" - /* 2 */ "bxxxy......" - /* 3 */ "zxxxb......" - /* 4 */ "zxxxabwbbba" - /* 5 */ "zxxxxxxxxxb" - /* 6 */ "bxxxxxxxxxy" - /* 7 */ "bxxxsssxxpb" - /* 8 */ "abbbAAAbbba" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "bBBBb......" - /* 1 */ "BC..B......" - /* 2 */ "B...B......" - /* 3 */ "B...B......" - /* 4 */ "b...bBBBBBb" - /* 5 */ "Bbbb......B" - /* 6 */ "Bbbb......B" - /* 7 */ "Bbbb.....DB" - /* 8 */ "bBBBBbBBBBb" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".aEa......." - /* 6 */ ".FGH......." - /* 7 */ ".aIa......." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".a.a......." - /* 6 */ "..J........" - /* 7 */ ".a.a......." - /* 8 */ "..........." - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".bbb......." - /* 6 */ ".bKb......." - /* 7 */ ".bbb......." - /* 8 */ "..........." - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".B.B......." - /* 6 */ "..........." - /* 7 */ ".B.B......." - /* 8 */ "...........", - - // Connectors: - "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumHouse2 - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumHouse3: - // The data has been exported from the gallery Desert, area index 76, ID 575, created by STR_Warrior - { - // Size: - 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 9, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 3: 0\n" /* dirt */ - "d: 24: 0\n" /* sandstone */ - "e: 13: 0\n" /* gravel */ - "f: 2: 0\n" /* grass */ - "g: 5: 0\n" /* wood */ - "h: 85: 0\n" /* fence */ - "i: 64: 3\n" /* wooddoorblock */ - "j: 64: 2\n" /* wooddoorblock */ - "k: 65: 4\n" /* ladder */ - "l: 65: 2\n" /* ladder */ - "m: 19: 0\n" /* sponge */ - "n: 50: 1\n" /* torch */ - "o: 50: 2\n" /* torch */ - "p:101: 0\n" /* ironbars */ - "q: 64: 8\n" /* wooddoorblock */ - "r:128: 2\n" /* sandstonestairs */ - "s:128: 6\n" /* sandstonestairs */ - "t:126: 8\n" /* woodenslab */ - "u:128: 5\n" /* sandstonestairs */ - "v:128: 7\n" /* sandstonestairs */ - "w: 44: 1\n" /* step */ - "x: 96: 0\n" /* trapdoor */ - "y:126: 0\n" /* woodenslab */ - "z:128: 4\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmammbbba" - /* 1 */ "mmmmmmmmbbbm" - /* 2 */ "cccccaddddda" - /* 3 */ "cccccddddddd" - /* 4 */ "cccccddddddd" - /* 5 */ "cccccddddddd" - /* 6 */ "cccddddddddd" - /* 7 */ "mmmddddddddd" - /* 8 */ "mmmdddddddda" - /* 9 */ "mmmdddddmmmm" - /* 10 */ "mmmadddammmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmammeeea" - /* 1 */ "mmmmmmmmeeem" - /* 2 */ "fffffadddgda" - /* 3 */ "fffffdgggggd" - /* 4 */ "fffffggggggd" - /* 5 */ "fffffdgggggd" - /* 6 */ "fffddggggggd" - /* 7 */ "mmmdgggggggd" - /* 8 */ "mmmdggggddda" - /* 9 */ "mmmdgggdmmmm" - /* 10 */ "mmmadddammmm" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmma.....a" - /* 1 */ "mmmmm......." - /* 2 */ "hhhhhadddida" - /* 3 */ "h....d.....d" - /* 4 */ "h....j.....d" - /* 5 */ "h....d.....d" - /* 6 */ "hhhad......d" - /* 7 */ "mmmd......kd" - /* 8 */ "mmmd....ddda" - /* 9 */ "mmmd..ldmmmm" - /* 10 */ "mmmadddammmm" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmman...oa" - /* 1 */ "mmmmm......." - /* 2 */ ".....appdqda" - /* 3 */ ".....d.....d" - /* 4 */ ".....q.....d" - /* 5 */ ".....d.....p" - /* 6 */ "...hd......d" - /* 7 */ "mmmd......kd" - /* 8 */ "mmmd....dppa" - /* 9 */ "mmmd..ldmmmm" - /* 10 */ "mmmhdddhmmmm" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmr.....r" - /* 1 */ "mmmmmd.....d" - /* 2 */ ".....assddda" - /* 3 */ ".....dtttttd" - /* 4 */ ".....dtttttd" - /* 5 */ ".....dtttttu" - /* 6 */ "...hdatttttd" - /* 7 */ "mmmdttttttkd" - /* 8 */ "mmmdtttadvva" - /* 9 */ "mmmdttldmmmm" - /* 10 */ "mmmhdddhmmmm" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ ".....dwwdwwd" - /* 3 */ ".....w.....w" - /* 4 */ ".....w.....w" - /* 5 */ ".....w.....d" - /* 6 */ "...hdadh...w" - /* 7 */ "mmmd...d..xw" - /* 8 */ "mmmd...awwwd" - /* 9 */ "mmmd..ldmmmm" - /* 10 */ "mmmhdddhmmmm" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...hd.dh...." - /* 7 */ "mmmd...d...." - /* 8 */ "mmmp........" - /* 9 */ "mmmd..ldmmmm" - /* 10 */ "mmmhdpdhmmmm" - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...hd.dh...." - /* 7 */ "mmmd...d...." - /* 8 */ "mmmp........" - /* 9 */ "mmmdn.ldmmmm" - /* 10 */ "mmmhdpdhmmmm" - - // Level 8 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...adsda...." - /* 7 */ "mmmdyyyd...." - /* 8 */ "mmmzyyyu...." - /* 9 */ "mmmdyyldmmmm" - /* 10 */ "mmmadvdammmm" - - // Level 9 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...w.w.w...." - /* 7 */ "mmm........." - /* 8 */ "mmmw...w...." - /* 9 */ "mmm.....mmmm" - /* 10 */ "mmmw.w.wmmmm", - - // Connectors: - "-1: 9, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumHouse3 - - - - //////////////////////////////////////////////////////////////////////////////// - // SmallHouse9: - // The data has been exported from the gallery Desert, area index 67, ID 556, created by STR_Warrior - { - // Size: - 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 65: 2\n" /* ladder */ - "h: 64: 8\n" /* wooddoorblock */ - "i:101: 0\n" /* ironbars */ - "j: 50: 2\n" /* torch */ - "k: 50: 1\n" /* torch */ - "l:128: 2\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:126: 8\n" /* woodenslab */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 6\n" /* sandstonestairs */ - "q:128: 4\n" /* sandstonestairs */ - "r:128: 7\n" /* sandstonestairs */ - "s: 44: 1\n" /* step */ - "t: 96: 2\n" /* trapdoor */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmmabbba" - /* 1 */ "mmmmmbbbm" - /* 2 */ "mmmmaccca" - /* 3 */ "mmmmccccc" - /* 4 */ "mmmmccccc" - /* 5 */ "mmmmccccc" - /* 6 */ "acccacccc" - /* 7 */ "ccccccccc" - /* 8 */ "ccccccccc" - /* 9 */ "ccccccccc" - /* 10 */ "accccccca" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmaddda" - /* 1 */ "mmmmmdddm" - /* 2 */ "mmmmaceca" - /* 3 */ "mmmmceeec" - /* 4 */ "mmmmceeec" - /* 5 */ "mmmmceeec" - /* 6 */ "acccaeeec" - /* 7 */ "ceeeeeeec" - /* 8 */ "ceeeeeeec" - /* 9 */ "ceeeeeeec" - /* 10 */ "accccccca" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 2 */ "mmmmacfca" - /* 3 */ "mmmmc...c" - /* 4 */ "mmmmc...c" - /* 5 */ "mmmmc...c" - /* 6 */ "accca...c" - /* 7 */ "c.......c" - /* 8 */ "c.......c" - /* 9 */ "c......gc" - /* 10 */ "accccccca" - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 2 */ "mmmmachca" - /* 3 */ "mmmmc...c" - /* 4 */ "mmmmc...c" - /* 5 */ "mmmmc...i" - /* 6 */ "acica...i" - /* 7 */ "c.......i" - /* 8 */ "i......jc" - /* 9 */ "ck.....gc" - /* 10 */ "acciiicca" - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmmml...l" - /* 1 */ "mmmmc...c" - /* 2 */ "mmmmaccca" - /* 3 */ "mmmmcnnnc" - /* 4 */ "mmmmcnnnc" - /* 5 */ "mmmmcnnno" - /* 6 */ "acpcannno" - /* 7 */ "cnnnnnnno" - /* 8 */ "qnnnnnnnc" - /* 9 */ "cnnnnnngc" - /* 10 */ "accrrrcca" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mmmm....." - /* 1 */ "mmmm....." - /* 2 */ "mmmmcscsc" - /* 3 */ "mmmms...s" - /* 4 */ "mmmms...s" - /* 5 */ "mmmms...s" - /* 6 */ "csssc...c" - /* 7 */ "s.......s" - /* 8 */ "s.......s" - /* 9 */ "s......ts" - /* 10 */ "cssscsssc", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SmallHouse9 - - - - //////////////////////////////////////////////////////////////////////////////// - // Temple: - // The data has been exported from the gallery Desert, area index 83, ID 599, created by STR_Warrior - { - // Size: - 13, 10, 9, // SizeX = 13, SizeY = 10, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 9, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 51: 0\n" /* fire */ - "B: 44: 9\n" /* step */ - "a: 24: 2\n" /* sandstone */ - "b: 4: 0\n" /* cobblestone */ - "c: 24: 0\n" /* sandstone */ - "d: 13: 0\n" /* gravel */ - "e: 5: 0\n" /* wood */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 17: 0\n" /* tree */ - "h:128: 5\n" /* sandstonestairs */ - "i:128: 4\n" /* sandstonestairs */ - "j:128: 7\n" /* sandstonestairs */ - "k:128: 6\n" /* sandstonestairs */ - "l:118: 3\n" /* cauldronblock */ - "m: 19: 0\n" /* sponge */ - "n:155: 1\n" /* quartzblock */ - "o: 64: 8\n" /* wooddoorblock */ - "p: 50: 3\n" /* torch */ - "q:101: 0\n" /* ironbars */ - "r:140: 0\n" /* flowerpotblock */ - "s: 24: 1\n" /* sandstone */ - "t:128: 2\n" /* sandstonestairs */ - "u:126: 8\n" /* woodenslab */ - "v: 44: 1\n" /* step */ - "w:128: 0\n" /* sandstonestairs */ - "x: 87: 0\n" /* netherstone */ - "y:128: 1\n" /* sandstonestairs */ - "z:128: 3\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmabbbammmm" - /* 1 */ "mmmmmbbbmmmmm" - /* 2 */ "accccccccccca" - /* 3 */ "ccccccccccccc" - /* 4 */ "ccccccccccccc" - /* 5 */ "ccccccccccccc" - /* 6 */ "ccccccccccccc" - /* 7 */ "ccccccccccccc" - /* 8 */ "accccccccccca" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmadddammmm" - /* 1 */ "mmmmmdddmmmmm" - /* 2 */ "accccceccccca" - /* 3 */ "ceeeeeeeeeeec" - /* 4 */ "ceeeeeeeeeeec" - /* 5 */ "ceeeeeeeeeeec" - /* 6 */ "ceeeeeeeeeeec" - /* 7 */ "ceeeeeeeeeeec" - /* 8 */ "accccccccccca" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmma...ammmm" - /* 1 */ "mmmm.....mmmm" - /* 2 */ "acccccfccccca" - /* 3 */ "cgh.......igc" - /* 4 */ "cj.........jc" - /* 5 */ "c...........c" - /* 6 */ "ck.........kc" - /* 7 */ "cgh.linhl.igc" - /* 8 */ "accccccccccca" - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmma...ammmm" - /* 1 */ "mmmm.....mmmm" - /* 2 */ "acccccoccccca" - /* 3 */ "cg...p.p...gc" - /* 4 */ "c...........c" - /* 5 */ "q...........q" - /* 6 */ "c...........c" - /* 7 */ "cg...rsr...gc" - /* 8 */ "acqqqcccqqqca" - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmt...tmmmm" - /* 1 */ "mmmms...cmmmm" - /* 2 */ "accccccccccca" - /* 3 */ "cguuuuuuuuugc" - /* 4 */ "cuuuuuuuuuuuc" - /* 5 */ "iuuuuuuuuuuuh" - /* 6 */ "cuuuuuuuuuuuc" - /* 7 */ "cguuuuuuuuugc" - /* 8 */ "acjjjcccjjjca" - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmm.....mmmm" - /* 1 */ "mmmm.....mmmm" - /* 2 */ "cvvvvvcvvvvvc" - /* 3 */ "v...........v" - /* 4 */ "v.ccc...ccc.v" - /* 5 */ "c.ccc...ccc.c" - /* 6 */ "v.ccc...ccc.v" - /* 7 */ "v...........v" - /* 8 */ "cvvvvvcvvvvvc" - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..ata...ata.." - /* 5 */ "..wxy...wxy.." - /* 6 */ "..aza...aza.." - /* 7 */ "............." - /* 8 */ "............." - - // Level 7 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..a.a...a.a.." - /* 5 */ "...A.....A..." - /* 6 */ "..a.a...a.a.." - /* 7 */ "............." - /* 8 */ "............." - - // Level 8 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..ccc...ccc.." - /* 5 */ "..cBc...cBc.." - /* 6 */ "..ccc...ccc.." - /* 7 */ "............." - /* 8 */ "............." - - // Level 9 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..v.v...v.v.." - /* 5 */ "............." - /* 6 */ "..v.v...v.v.." - /* 7 */ "............." - /* 8 */ ".............", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 50, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Temple -}; // g_AlchemistVillagePrefabs - - - - - - -const cPrefab::sDef g_AlchemistVillageStartingPrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // Well: - // The data has been exported from the gallery Desert, area index 90, ID 631, created by STR_Warrior - { - // Size: - 7, 21, 7, // SizeX = 7, SizeY = 21, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 20, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 24: 2\n" /* sandstone */ - "c: 24: 0\n" /* sandstone */ - "d: 8: 0\n" /* water */ - "e: 4: 0\n" /* cobblestone */ - "f: 13: 0\n" /* gravel */ - "g:128: 1\n" /* sandstonestairs */ - "h: 44: 1\n" /* step */ - "i:128: 0\n" /* sandstonestairs */ - "j:128: 3\n" /* sandstonestairs */ - "k:128: 2\n" /* sandstonestairs */ - "l: 44: 9\n" /* step */ - "m: 19: 0\n" /* sponge */ - "n:126: 0\n" /* woodenslab */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "mmeeemm" - /* 1 */ "mbcccbm" - /* 2 */ "ecdddce" - /* 3 */ "ecdddce" - /* 4 */ "ecdddce" - /* 5 */ "mbcccbm" - /* 6 */ "mmeeemm" - - // Level 15 - /* z\x* 0123456 */ - /* 0 */ "mmfffmm" - /* 1 */ "mbcccbm" - /* 2 */ "fcdddcf" - /* 3 */ "fcdddcf" - /* 4 */ "fcdddcf" - /* 5 */ "mbcccbm" - /* 6 */ "mmfffmm" - - // Level 16 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mbghibm" - /* 2 */ ".j...j." - /* 3 */ ".h...h." - /* 4 */ ".k...k." - /* 5 */ "mbghibm" - /* 6 */ "mm...mm" - - // Level 17 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mb...bm" - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "mb...bm" - /* 6 */ "mm...mm" - - // Level 18 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mblllbm" - /* 2 */ ".l...l." - /* 3 */ ".l...l." - /* 4 */ ".l...l." - /* 5 */ "mblllbm" - /* 6 */ "mm...mm" - - // Level 19 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mcccccm" - /* 2 */ ".cnnnc." - /* 3 */ ".cnnnc." - /* 4 */ ".cnnnc." - /* 5 */ "mcccccm" - /* 6 */ "mm...mm" - - // Level 20 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mh.h.hm" - /* 2 */ "......." - /* 3 */ ".h...h." - /* 4 */ "......." - /* 5 */ "mh.h.hm" - /* 6 */ "mm...mm", - - // Connectors: - "2: 3, 16, 6: 3\n" /* Type 2, direction Z+ */ - "2: 0, 16, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 16, 0: 2\n" /* Type 2, direction Z- */ - "2: 6, 16, 3: 5\n" /* Type 2, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_AlchemistVillagePrefabsCount = ARRAYCOUNT(g_AlchemistVillagePrefabs); - -const size_t g_AlchemistVillageStartingPrefabsCount = ARRAYCOUNT(g_AlchemistVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.h b/src/Generating/Prefabs/AlchemistVillagePrefabs.h deleted file mode 100644 index dddc5530a..000000000 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// AlchemistVillagePrefabs.h - -// Declares the prefabs in the group AlchemistVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_AlchemistVillagePrefabs[]; -extern const cPrefab::sDef g_AlchemistVillageStartingPrefabs[]; -extern const size_t g_AlchemistVillagePrefabsCount; -extern const size_t g_AlchemistVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/CMakeLists.txt b/src/Generating/Prefabs/CMakeLists.txt index 68f6491c4..1b130636f 100644 --- a/src/Generating/Prefabs/CMakeLists.txt +++ b/src/Generating/Prefabs/CMakeLists.txt @@ -5,26 +5,18 @@ project (MCServer) include_directories ("${PROJECT_SOURCE_DIR}/../../") SET (SRCS - AlchemistVillagePrefabs.cpp - JapaneseVillagePrefabs.cpp NetherFortPrefabs.cpp - PlainsVillagePrefabs.cpp RainbowRoadPrefabs.cpp - SandFlatRoofVillagePrefabs.cpp - SandVillagePrefabs.cpp TestRailsPrefabs.cpp - UnderwaterBasePrefabs.cpp) + UnderwaterBasePrefabs.cpp +) SET (HDRS - AlchemistVillagePrefabs.h - JapaneseVillagePrefabs.h NetherFortPrefabs.h - PlainsVillagePrefabs.h RainbowRoadPrefabs.h - SandFlatRoofVillagePrefabs.h - SandVillagePrefabs.h TestRailsPrefabs.h - UnderwaterBasePrefabs.h) + UnderwaterBasePrefabs.h +) if(NOT MSVC) add_library(Generating_Prefabs ${SRCS} ${HDRS}) diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp deleted file mode 100644 index 0362c9406..000000000 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ /dev/null @@ -1,3386 +0,0 @@ - -// JapaneseVillagePrefabs.cpp - -// Defines the prefabs in the group JapaneseVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "JapaneseVillagePrefabs.h" - - - - - -const cPrefab::sDef g_JapaneseVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // Arch: - // The data has been exported from the gallery Plains, area index 144, ID 488, created by Aloe_vera - { - // Size: - 11, 7, 5, // SizeX = 11, SizeY = 7, SizeZ = 5 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 6, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 2: 0\n" /* grass */ - "b: 13: 0\n" /* gravel */ - "c:113: 0\n" /* netherbrickfence */ - "d: 50: 5\n" /* torch */ - "e: 44: 8\n" /* step */ - "f: 44: 0\n" /* step */ - "g: 43: 0\n" /* doubleslab */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaabbbaaaa" - /* 1 */ "aaaabbbaaaa" - /* 2 */ "aaaabbbaaaa" - /* 3 */ "aaaabbbaaaa" - /* 4 */ "aaaabbbaaaa" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..c.....c.." - /* 1 */ "..c.....c.." - /* 2 */ "..c.....c.." - /* 3 */ "..c.....c.." - /* 4 */ "..c.....c.." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..c.....c.." - /* 1 */ "..........." - /* 2 */ "..c.....c.." - /* 3 */ "..........." - /* 4 */ "..c.....c.." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..d.....d.." - /* 1 */ "..........." - /* 2 */ "..c.....c.." - /* 3 */ "..........." - /* 4 */ "..d.....d.." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "...eeeee..." - /* 1 */ "..........." - /* 2 */ "..c.....c.." - /* 3 */ "..........." - /* 4 */ "...eeeee..." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..f.....f.." - /* 1 */ ".egfffffge." - /* 2 */ ".egeeeeege." - /* 3 */ ".egfffffge." - /* 4 */ "..f.....f.." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "gf.......fg" - /* 3 */ "..........." - /* 4 */ "...........", - - // Connectors: - "2: 5, 1, 4: 3\n" /* Type 2, direction Z+ */ - "2: 5, 1, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Arch - - - - //////////////////////////////////////////////////////////////////////////////// - // Farm: - // The data has been exported from the gallery Plains, area index 166, ID 554, created by Aloe_vera - { - // Size: - 11, 8, 13, // SizeX = 11, SizeY = 8, SizeZ = 13 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 7, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 43: 0\n" /* doubleslab */ - "e: 44: 0\n" /* step */ - "f: 59: 7\n" /* crops */ - "g: 83: 0\n" /* reedblock */ - "h:113: 0\n" /* netherbrickfence */ - "i: 50: 5\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "maaaaaaaaam" - /* 9 */ "maaaaaaaaam" - /* 10 */ "maaaaaaaaam" - /* 11 */ "maaaaaaaaam" - /* 12 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "mabbbbbbbam" - /* 3 */ "mabbbbbbbam" - /* 4 */ "mabbbbbbbam" - /* 5 */ "mabbbbbbbam" - /* 6 */ "mabcccccaam" - /* 7 */ "mabbbbbbbam" - /* 8 */ "mabbbbbbbam" - /* 9 */ "mabbbbbbbam" - /* 10 */ "mabbbbbbbam" - /* 11 */ "maaaaaaaaam" - /* 12 */ "mmmmmmmmmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".deeeeeeed." - /* 2 */ ".efffffffe." - /* 3 */ ".efffffffe." - /* 4 */ ".efffffffe." - /* 5 */ ".efgggggfe." - /* 6 */ ".eg.....ge." - /* 7 */ ".efgggggfe." - /* 8 */ ".efffffffe." - /* 9 */ ".efffffffe." - /* 10 */ ".efffffffe." - /* 11 */ ".deeeeeeed." - /* 12 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".h.......h." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ "...ggggg..." - /* 6 */ "..g.....g.." - /* 7 */ "...ggggg..." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ ".h.......h." - /* 12 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".h.......h." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ "...ggggg..." - /* 6 */ "..g.....g.." - /* 7 */ "...ggggg..." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ ".h.......h." - /* 12 */ "..........." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".h.......h." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ ".h.......h." - /* 12 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".h.......h." - /* 1 */ "hhh.....hhh" - /* 2 */ ".h.......h." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ ".h.......h." - /* 11 */ "hhh.....hhh" - /* 12 */ ".h.......h." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".i.......i." - /* 1 */ "i.i.....i.i" - /* 2 */ ".i.......i." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ ".i.......i." - /* 11 */ "i.i.....i.i" - /* 12 */ ".i.......i.", - - // Connectors: - "-1: 10, 2, 6: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Farm - - - - //////////////////////////////////////////////////////////////////////////////// - // Forge: - // The data has been exported from the gallery Plains, area index 79, ID 145, created by Aloe_vera - { - // Size: - 16, 11, 14, // SizeX = 16, SizeY = 11, SizeZ = 14 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 16, 10, 14, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 17: 1\n" /* tree */ - "c: 67: 0\n" /* stairs */ - "d: 5: 2\n" /* wood */ - "e: 67: 2\n" /* stairs */ - "f:113: 0\n" /* netherbrickfence */ - "g:118: 2\n" /* cauldronblock */ - "h: 67: 6\n" /* stairs */ - "i: 67: 4\n" /* stairs */ - "j: 87: 0\n" /* netherstone */ - "k: 67: 7\n" /* stairs */ - "l: 54: 5\n" /* chest */ - "m: 19: 0\n" /* sponge */ - "n: 61: 2\n" /* furnace */ - "o:101: 0\n" /* ironbars */ - "p: 51: 0\n" /* fire */ - "q: 50: 4\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 35: 0\n" /* wool */ - "t: 67: 3\n" /* stairs */ - "u: 50: 3\n" /* torch */ - "v: 44: 8\n" /* step */ - "w: 43: 0\n" /* doubleslab */ - "x: 44: 0\n" /* step */ - "y: 17: 5\n" /* tree */ - "z: 17: 9\n" /* tree */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmmmmmmm" - /* 2 */ "mmaaaaaaaaaaaamm" - /* 3 */ "mmaaaaaaaaaaaamm" - /* 4 */ "mmaaaaaaaaaaaamm" - /* 5 */ "mmaaaaaaaaaaaamm" - /* 6 */ "mmaaaaaaaaaaaamm" - /* 7 */ "mmaaaaaaaaaaaamm" - /* 8 */ "mmaaaaaaaaaaaamm" - /* 9 */ "mmaaaaaaaaaaaamm" - /* 10 */ "mmaaaaaaaaaaaamm" - /* 11 */ "mmaaaaaaaaaaaamm" - /* 12 */ "mmmmmmmmmmmmmmmm" - /* 13 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ ".....bbbbbbbbb.." - /* 3 */ ".....cdddddddb.." - /* 4 */ ".....cddaaaadb.." - /* 5 */ "..beeedaaaaadb.." - /* 6 */ "..bddddaaaaadb.." - /* 7 */ "..bddddaaaaadb.." - /* 8 */ "..bddddaaaaadb.." - /* 9 */ "..bddddaaaaadb.." - /* 10 */ "..bddddddddddb.." - /* 11 */ "..bbbbbbbbbbbb.." - /* 12 */ "................" - /* 13 */ "................" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ ".....bfffbfffb.." - /* 3 */ ".............a.." - /* 4 */ ".............a.." - /* 5 */ "..b.....ghh..a.." - /* 6 */ "..f.....haa..b.." - /* 7 */ "..f.....ija..b.." - /* 8 */ "..f.....kaa..a.." - /* 9 */ "..f..........a.." - /* 10 */ "..fl.........a.." - /* 11 */ "..bffffbbffffb.." - /* 12 */ "................" - /* 13 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ ".....bfffbfffb.." - /* 3 */ ".............a.." - /* 4 */ ".............a.." - /* 5 */ "..b......nn..a.." - /* 6 */ "..f.....oaa..b.." - /* 7 */ "..f.....opa..b.." - /* 8 */ "..f.....oaa..a.." - /* 9 */ "..f..........a.." - /* 10 */ "..f..........a.." - /* 11 */ "..bffffbbffffb.." - /* 12 */ "................" - /* 13 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".........q...q.." - /* 2 */ "....rbsssbsssb.." - /* 3 */ ".............a.." - /* 4 */ "..q..........a.." - /* 5 */ "..b......ce..a.." - /* 6 */ "..s......ea..b.." - /* 7 */ "..s......aa..b.." - /* 8 */ "..s......ta..a.." - /* 9 */ "..s..........a.." - /* 10 */ "..s..........a.." - /* 11 */ ".rbssssbbssssb.." - /* 12 */ "..u....uu....u.." - /* 13 */ "................" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ ".vwxxxxxxxxxxwv." - /* 1 */ "vvvvvvvvvvvvvvvv" - /* 2 */ "wvbyybyyybbyybvw" - /* 3 */ "xvz..........zvx" - /* 4 */ "xvz..........zvx" - /* 5 */ "xvb..........zvx" - /* 6 */ "xvz.......a..bvx" - /* 7 */ "xvz......ca..bvx" - /* 8 */ "xvz.......a..zvx" - /* 9 */ "xvz..........zvx" - /* 10 */ "xvz..........zvx" - /* 11 */ "wvbyyyyyyyyyybvw" - /* 12 */ "vvvvvvvvvvvvvvvv" - /* 13 */ ".vwxxxxxxxxxxwv." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "wx............xw" - /* 1 */ "x..............x" - /* 2 */ "..xxxxxxxxxxxx.." - /* 3 */ "..xwwwwwwwwwwx.." - /* 4 */ "..xwvvvvvvvvvx.." - /* 5 */ "..xwv.......vx.." - /* 6 */ "..xwv.....a.vx.." - /* 7 */ "..xwv.....a.vx.." - /* 8 */ "..xwv.....a.vx.." - /* 9 */ "..xwvvvvvvvvvx.." - /* 10 */ "..xwwwwwwwwwwx.." - /* 11 */ "..xxxxxxxxxxxx.." - /* 12 */ "x..............x" - /* 13 */ "wx............xw" - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "....xxxxxxxx...." - /* 5 */ "....xxxxxxxx...." - /* 6 */ "....xwwwwwax...." - /* 7 */ "....xwvvvvax...." - /* 8 */ "....xwwwwwax...." - /* 9 */ "....xxxxxxxx...." - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................" - - // Level 8 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "..........a....." - /* 7 */ ".......xx.a....." - /* 8 */ "..........a....." - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................" - - // Level 9 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "..........a....." - /* 7 */ "..........a....." - /* 8 */ "..........a....." - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................" - - // Level 10 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "..........a....." - /* 7 */ "..........a....." - /* 8 */ "..........a....." - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................", - - // Connectors: - "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Forge - - - - //////////////////////////////////////////////////////////////////////////////// - // Garden2: - // The data has been exported from the gallery Plains, area index 147, ID 491, created by Aloe_vera - { - // Size: - 16, 5, 16, // SizeX = 16, SizeY = 5, SizeZ = 16 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 15, 4, 15, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 8: 0\n" /* water */ - "c: 2: 0\n" /* grass */ - "d: 17: 1\n" /* tree */ - "e: 13: 0\n" /* gravel */ - "f: 31: 2\n" /* tallgrass */ - "g: 18: 5\n" /* leaves */ - "h: 38: 7\n" /* rose */ - "i: 17: 9\n" /* tree */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "aaaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaaaaaaa" - /* 13 */ "aaaaaaaaaaaaaaaa" - /* 14 */ "aaaaaaaaaaaaaaaa" - /* 15 */ "aaaaaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "aaaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaaa" - /* 6 */ "aaaabbaaaaaaaaaa" - /* 7 */ "aaabbbaaaaaaaaaa" - /* 8 */ "aaabbaaaaaaaaaaa" - /* 9 */ "aaaabaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaaaaaaa" - /* 13 */ "aaaaaaaaaaaaaaaa" - /* 14 */ "aaaaaaaaaaaaaaaa" - /* 15 */ "aaaaaaaaaaaaaaaa" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "cccccccccccccccc" - /* 1 */ "ccdccccccccdcccc" - /* 2 */ "cccccceecccccdcc" - /* 3 */ "ccccccceeccccccc" - /* 4 */ "cccccccceccccccc" - /* 5 */ "cccbbbbceccccccc" - /* 6 */ "cccbbbbceecccccc" - /* 7 */ "ccbbbbbcceeeeccc" - /* 8 */ "ccbbbbbccccceecc" - /* 9 */ "ccbbbbcccccccecc" - /* 10 */ "ccccbcccccccceec" - /* 11 */ "ccccccccccccccec" - /* 12 */ "ccccccccaaacccec" - /* 13 */ "cccccccccaccccec" - /* 14 */ "ccccccccccccceec" - /* 15 */ "cccccccccccceecc" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "......f...gg.g.." - /* 1 */ "..gg.....gggggg." - /* 2 */ "ffgg......ghgggg" - /* 3 */ ".............gg." - /* 4 */ "...........f...." - /* 5 */ "...........h.ff." - /* 6 */ ".............fh." - /* 7 */ "...............f" - /* 8 */ "................" - /* 9 */ ".......ff.f....." - /* 10 */ ".f.....ffggf...." - /* 11 */ ".......gggg.f..." - /* 12 */ ".f......iddg...." - /* 13 */ ".....f..gdgg...." - /* 14 */ "....ff...gg....." - /* 15 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "...........g.g.." - /* 2 */ ".............gg." - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ ".........g......" - /* 11 */ "........ggg....." - /* 12 */ "........ggg....." - /* 13 */ ".........g......" - /* 14 */ "................" - /* 15 */ "................", - - // Connectors: - "-1: 12, 3, 15: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Garden2 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseMid: - // The data has been exported from the gallery Plains, area index 62, ID 119, created by Aloe_vera - { - // Size: - 10, 9, 9, // SizeX = 10, SizeY = 9, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 10, 8, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b:135: 2\n" /* 135 */ - "c:135: 0\n" /* 135 */ - "d: 17: 9\n" /* tree */ - "e:135: 3\n" /* 135 */ - "f: 85: 0\n" /* fence */ - "g: 17: 1\n" /* tree */ - "h:171: 0\n" /* carpet */ - "i: 50: 5\n" /* torch */ - "j: 35: 0\n" /* wool */ - "k: 17: 5\n" /* tree */ - "l:124: 0\n" /* redstonelampon */ - "m: 19: 0\n" /* sponge */ - "n: 69: 9\n" /* lever */ - "o: 44: 8\n" /* step */ - "p: 43: 0\n" /* doubleslab */ - "q: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "maaaaaaaaa" - /* 1 */ "maaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - /* 7 */ "maaaaaaaaa" - /* 8 */ "maaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".aaaaaaaaa" - /* 1 */ ".aaaaaaaaa" - /* 2 */ "baaaaaaaaa" - /* 3 */ "caaaaaaaaa" - /* 4 */ "caadaaaaaa" - /* 5 */ "caaaaaaaaa" - /* 6 */ "eaaaaaaaaa" - /* 7 */ ".aaaaaaaaa" - /* 8 */ ".aaaaaaaaa" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".fffffffff" - /* 1 */ ".f.......f" - /* 2 */ ".f.ggggg.f" - /* 3 */ "...ghhhg.f" - /* 4 */ "....hhhg.f" - /* 5 */ "...ghhhg.f" - /* 6 */ ".f.ggggg.f" - /* 7 */ ".f.......f" - /* 8 */ ".fffffffff" - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".....i...i" - /* 1 */ ".........." - /* 2 */ ".i.jjgjj.." - /* 3 */ "...g...j.." - /* 4 */ ".......g.i" - /* 5 */ "...g...j.." - /* 6 */ ".i.jjgjj.." - /* 7 */ ".........." - /* 8 */ ".....i...i" - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ "...jjgjj.." - /* 3 */ "...g...j.." - /* 4 */ "...j...g.." - /* 5 */ "...g...j.." - /* 6 */ "...jjgjj.." - /* 7 */ ".........." - /* 8 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ "...f...f.." - /* 2 */ "..fgkgkgf." - /* 3 */ "..fd...d.." - /* 4 */ "...d.lng.." - /* 5 */ "..fd...d.." - /* 6 */ "..fgkgkgf." - /* 7 */ "...f...f.." - /* 8 */ ".........." - - // Level 6 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "...ooooo.." - /* 1 */ "..opppppo." - /* 2 */ ".opgjjjgpo" - /* 3 */ ".opjgggjpo" - /* 4 */ ".opjgggjpo" - /* 5 */ ".opjgggjpo" - /* 6 */ ".opgjjjgpo" - /* 7 */ "..opppppo." - /* 8 */ "...ooooo.." - - // Level 7 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".opq...qpo" - /* 1 */ ".pq.....qp" - /* 2 */ ".q.qqqqq.q" - /* 3 */ "...qpppq.." - /* 4 */ "...qpppq.." - /* 5 */ "...qpppq.." - /* 6 */ ".q.qqqqq.q" - /* 7 */ ".pq.....qp" - /* 8 */ ".opq...qpo" - - // Level 8 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".q.......q" - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".....q...." - /* 5 */ ".........." - /* 6 */ ".........." - /* 7 */ ".........." - /* 8 */ ".q.......q", - - // Connectors: - "-1: 0, 1, 4: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseMid - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmall: - // The data has been exported from the gallery Plains, area index 68, ID 131, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d: 50: 4\n" /* torch */ - "e: 85: 0\n" /* fence */ - "f: 44: 8\n" /* step */ - "g: 43: 0\n" /* doubleslab */ - "h: 44: 0\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bcc.b." - /* 2 */ ".c...c." - /* 3 */ ".c...c." - /* 4 */ ".c...c." - /* 5 */ ".bcccb." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ ".....d." - /* 1 */ ".bee.b." - /* 2 */ ".c...c." - /* 3 */ ".e...e." - /* 4 */ ".c...c." - /* 5 */ ".beeeb." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ ".fffff." - /* 1 */ "fbcccbf" - /* 2 */ "fc...cf" - /* 3 */ "fc...cf" - /* 4 */ "fc...cf" - /* 5 */ "fbcccbf" - /* 6 */ ".fffff." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "gh...hg" - /* 1 */ "hhhhhhh" - /* 2 */ ".hgggh." - /* 3 */ ".hgggh." - /* 4 */ ".hgggh." - /* 5 */ "hhhhhhh" - /* 6 */ "gh...hg" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseSmall - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmallDblWithDoor: - // The data has been exported from the gallery Plains, area index 113, ID 265, created by Aloe_vera - { - // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 9\n" /* tree */ - "c: 17: 1\n" /* tree */ - "d: 35: 0\n" /* wool */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171:12\n" /* carpet */ - "g:135: 1\n" /* 135 */ - "h:126: 2\n" /* woodenslab */ - "i:135: 2\n" /* 135 */ - "j: 50: 4\n" /* torch */ - "k: 64:12\n" /* wooddoorblock */ - "l: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */ - "n: 44: 8\n" /* step */ - "o: 43: 0\n" /* doubleslab */ - "p: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaabaaaam" - /* 3 */ "maaaabaaaam" - /* 4 */ "maaaabaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".cdedcdddc." - /* 2 */ ".dfff.fffd." - /* 3 */ ".dgffdfhfd." - /* 4 */ ".diifdfffd." - /* 5 */ ".cdddcdddc." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".j...j...j." - /* 1 */ ".cdkdclllc." - /* 2 */ ".d.......l." - /* 3 */ ".l...l...l." - /* 4 */ ".d...l...l." - /* 5 */ ".clllclllc." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".nnnnnnnnn." - /* 1 */ "ncdddcdddcn" - /* 2 */ "nd...d...dn" - /* 3 */ "nd...d...dn" - /* 4 */ "nd...d...dn" - /* 5 */ "ncdddcdddcn" - /* 6 */ ".nnnnnnnnn." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "op.......po" - /* 1 */ "ppppppppppp" - /* 2 */ ".pooooooop." - /* 3 */ ".ponndnnop." - /* 4 */ ".pooooooop." - /* 5 */ "ppppppppppp" - /* 6 */ "op.......po" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...ppppp..." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 3, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseSmallDblWithDoor - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmallDouble: - // The data has been exported from the gallery Plains, area index 72, ID 135, created by Aloe_vera - { - // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d:171:12\n" /* carpet */ - "e:135: 1\n" /* 135 */ - "f:126: 2\n" /* woodenslab */ - "g:135: 2\n" /* 135 */ - "h: 50: 4\n" /* torch */ - "i: 85: 0\n" /* fence */ - "j: 44: 8\n" /* step */ - "k: 43: 0\n" /* doubleslab */ - "l: 44: 0\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".bcc.bcccb." - /* 2 */ ".cddd.dddc." - /* 3 */ ".ceddcdfdc." - /* 4 */ ".cggdcdddc." - /* 5 */ ".bcccbcccb." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".h...h...h." - /* 1 */ ".bii.biiib." - /* 2 */ ".c.......c." - /* 3 */ ".i...i...i." - /* 4 */ ".c...i...c." - /* 5 */ ".biiibiiib." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".jjjjjjjjj." - /* 1 */ "jbiiibiiibj" - /* 2 */ "jc.......cj" - /* 3 */ "jc...c...cj" - /* 4 */ "jc...c...cj" - /* 5 */ "jbcccbcccbj" - /* 6 */ ".jjjjjjjjj." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "kl...l...lk" - /* 1 */ "lllllllllll" - /* 2 */ ".lkkklkkkl." - /* 3 */ ".lkjklkkkl." - /* 4 */ ".lkkklkkkl." - /* 5 */ "lllllllllll" - /* 6 */ "kl...l...lk" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...l...l..." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseSmallDouble - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmallWithDoor: - // The data has been exported from the gallery Plains, area index 112, ID 264, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d: 64: 7\n" /* wooddoorblock */ - "e: 50: 4\n" /* torch */ - "f: 64:12\n" /* wooddoorblock */ - "g: 85: 0\n" /* fence */ - "h: 44: 8\n" /* step */ - "i: 43: 0\n" /* doubleslab */ - "j: 44: 0\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bcdcb." - /* 2 */ ".c...c." - /* 3 */ ".c...c." - /* 4 */ ".c...c." - /* 5 */ ".bcccb." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ ".....e." - /* 1 */ ".bcfcb." - /* 2 */ ".g...g." - /* 3 */ ".g...g." - /* 4 */ ".g...g." - /* 5 */ ".bgggb." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ ".hhhhh." - /* 1 */ "hbcccbh" - /* 2 */ "hc...ch" - /* 3 */ "hc...ch" - /* 4 */ "hc...ch" - /* 5 */ "hbcccbh" - /* 6 */ ".hhhhh." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ij...ji" - /* 1 */ "jjjjjjj" - /* 2 */ ".jiiij." - /* 3 */ ".jiiij." - /* 4 */ ".jiiij." - /* 5 */ "jjjjjjj" - /* 6 */ "ij...ji" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "...j..." - /* 4 */ "......." - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseSmallWithDoor - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWide: - // The data has been exported from the gallery Plains, area index 64, ID 121, created by STR_Warrior - { - // Size: - 11, 6, 11, // SizeX = 11, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 11, 5, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d:171: 0\n" /* carpet */ - "e:126: 1\n" /* woodenslab */ - "f: 64: 5\n" /* wooddoorblock */ - "g: 85: 0\n" /* fence */ - "h: 50: 1\n" /* torch */ - "i: 50: 2\n" /* torch */ - "j: 64:12\n" /* wooddoorblock */ - "k:126:11\n" /* woodenslab */ - "l: 17: 5\n" /* tree */ - "m: 19: 0\n" /* sponge */ - "n:126: 3\n" /* woodenslab */ - "o:125: 3\n" /* woodendoubleslab */ - "p: 5: 3\n" /* wood */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmaaaaaaamm" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "maaaaaaaaam" - /* 9 */ "mmaaaaaaamm" - /* 10 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..bcbcbcb.." - /* 2 */ ".b.d.....b." - /* 3 */ ".cded....c." - /* 4 */ ".bded....b." - /* 5 */ ".c.d.....c." - /* 6 */ ".b.......b." - /* 7 */ ".c.......c." - /* 8 */ ".b.......b." - /* 9 */ "..bcbfbcb.." - /* 10 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..bgbgbgb.." - /* 2 */ ".b.......b." - /* 3 */ ".g.......g." - /* 4 */ ".bh.....ib." - /* 5 */ ".g.......g." - /* 6 */ ".b.......b." - /* 7 */ ".g.......g." - /* 8 */ ".b.......b." - /* 9 */ "..bgbjbgb.." - /* 10 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "...kkkkk..." - /* 1 */ "..bcbcbcb.." - /* 2 */ ".b.......b." - /* 3 */ "kc.......ck" - /* 4 */ "kb.......bk" - /* 5 */ "kc.......ck" - /* 6 */ "kb.......bk" - /* 7 */ "kc.......ck" - /* 8 */ ".b.......b." - /* 9 */ "..bcblbcb.." - /* 10 */ "...kkkkk..." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".kn.....nk." - /* 1 */ "konnnnnnnok" - /* 2 */ "nnnnnnnnnnn" - /* 3 */ ".nnpppppnn." - /* 4 */ ".nnpkkkpnn." - /* 5 */ ".nnpkkkpnn." - /* 6 */ ".nnpkkkpnn." - /* 7 */ ".nnpppppnn." - /* 8 */ "nnnnnnnnnnn" - /* 9 */ "kknnnnnnnok" - /* 10 */ ".kn.....nk." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "n.........n" - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "....nnn...." - /* 5 */ "....non...." - /* 6 */ "....nnn...." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "n.........n", - - // Connectors: - "-1: 5, 1, 10: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWide - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWithGarden: - // The data has been exported from the gallery Plains, area index 67, ID 130, created by Aloe_vera - { - // Size: - 16, 9, 16, // SizeX = 16, SizeY = 9, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 16, 8, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 5: 2\n" /* wood */ - "c: 2: 0\n" /* grass */ - "d:113: 0\n" /* netherbrickfence */ - "e: 17: 1\n" /* tree */ - "f: 35: 0\n" /* wool */ - "g:126: 2\n" /* woodenslab */ - "h: 31: 2\n" /* tallgrass */ - "i:125: 2\n" /* woodendoubleslab */ - "j: 38: 3\n" /* rose */ - "k: 38: 2\n" /* rose */ - "l: 38: 1\n" /* rose */ - "m: 19: 0\n" /* sponge */ - "n: 17: 2\n" /* tree */ - "o: 50: 4\n" /* torch */ - "p: 85: 0\n" /* fence */ - "q:140: 0\n" /* flowerpotblock */ - "r: 50: 3\n" /* torch */ - "s: 44: 8\n" /* step */ - "t: 50: 1\n" /* torch */ - "u: 50: 2\n" /* torch */ - "v: 43: 0\n" /* doubleslab */ - "w: 44: 0\n" /* step */ - "x: 18:10\n" /* leaves */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmaammmmm" - /* 1 */ "aabbbbbbbbbbaaam" - /* 2 */ "aabbbbbbbbbbaaam" - /* 3 */ "aabbbbbbbbbbaaam" - /* 4 */ "aabbbbbbbbbbaaam" - /* 5 */ "aabbbbbbbbbbaaam" - /* 6 */ "aabbbbbbbbbbaaam" - /* 7 */ "aabbbbbbbbbbaaam" - /* 8 */ "aabbbbbbbbbbaaam" - /* 9 */ "aabbbbbbbbbbaaam" - /* 10 */ "aaaaaaaaaaaaaaam" - /* 11 */ "aaaaaaaaaaaaaaam" - /* 12 */ "aaaaaaaaaaaaaaam" - /* 13 */ "aaaaaaaaaaaaaaam" - /* 14 */ "aaaaaaaaaaaaaaam" - /* 15 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmccmmmmm" - /* 1 */ "ccbbbbbbbbbbcccm" - /* 2 */ "ccbbbbbbbbbbcccm" - /* 3 */ "ccbbbbbbbbbbcccm" - /* 4 */ "ccbbbbbbbbbbcccm" - /* 5 */ "ccbbbbbbbbbbcccm" - /* 6 */ "ccbbbbbbbbbbcccm" - /* 7 */ "ccbbbbbbbbbbcccm" - /* 8 */ "ccbbbbbbbbbbcccm" - /* 9 */ "ccbbbbbbbbbbcccm" - /* 10 */ "cccccccccccccccm" - /* 11 */ "cccccccccccccccm" - /* 12 */ "cccccccccccccccm" - /* 13 */ "cccccccccccccacm" - /* 14 */ "cccccccccccccccm" - /* 15 */ "mmmmmmmmmmmmmmmm" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "ddeffeffe..eddd." - /* 2 */ "d.fbbgggg..f..d." - /* 3 */ "d.fbgggggggf.hd." - /* 4 */ "d.fbgggggggf..d." - /* 5 */ "d.eggggggggehhd." - /* 6 */ "d.fgiiggiigf.hd." - /* 7 */ "d.fgiiggiigf..d." - /* 8 */ "d.fggggggggf..d." - /* 9 */ "d.efffeefffe.hd." - /* 10 */ "d.............d." - /* 11 */ "djhhk.jhh..hh.d." - /* 12 */ "d.jlk.hj.h....d." - /* 13 */ "d..jh.hh..h..nd." - /* 14 */ "ddddddddddddddd." - /* 15 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "........o..o...." - /* 1 */ "..eppeffe..e...." - /* 2 */ "..pqq......p...." - /* 3 */ "..pq.......p...." - /* 4 */ "..pq.......p...." - /* 5 */ "..e........e...." - /* 6 */ "..p........p...." - /* 7 */ "..p........p...." - /* 8 */ "..p........p...." - /* 9 */ "..epppeepppe...." - /* 10 */ "......rr........" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ ".............n.." - /* 14 */ "................" - /* 15 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "..ssssssssss...." - /* 1 */ ".seffeffeffes..." - /* 2 */ ".sf..r.....fs..." - /* 3 */ ".sf........fs..." - /* 4 */ ".sf........fs..." - /* 5 */ ".set......ues..." - /* 6 */ ".sf........fs..." - /* 7 */ ".sf........fs..." - /* 8 */ ".sf........fs..." - /* 9 */ ".sefffeefffes..." - /* 10 */ "..ssssssssss...." - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ ".............n.." - /* 14 */ "................" - /* 15 */ "................" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ ".vw........wv..." - /* 1 */ ".wwwwwwwwwwww..." - /* 2 */ "..wvvvvvvvvw...." - /* 3 */ "..wvvvvvvvvw...." - /* 4 */ "..wvvvvvvvvw...." - /* 5 */ "..wvvvvvvvvw...." - /* 6 */ "..wvvvvvvvvw...." - /* 7 */ "..wvvvvvvvvw...." - /* 8 */ "..wvvvvvvvvw...." - /* 9 */ ".wwwwwwwwwwww..." - /* 10 */ ".vw........wv..." - /* 11 */ "............xxx." - /* 12 */ "...........xxxxx" - /* 13 */ "...........xxnxx" - /* 14 */ "...........xxxxx" - /* 15 */ "............xxx." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "....wwwwww......" - /* 4 */ "....wvvvvw......" - /* 5 */ "....wvvvvw......" - /* 6 */ "....wvvvvw......" - /* 7 */ "....wwwwww......" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "............xxx." - /* 12 */ "...........xxxxx" - /* 13 */ "...........xxnxx" - /* 14 */ "...........xxxxx" - /* 15 */ "............xxx." - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "......ww........" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "............xxx." - /* 13 */ "............xnx." - /* 14 */ "............xx.." - /* 15 */ "................" - - // Level 8 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ ".............x.." - /* 13 */ "............xxx." - /* 14 */ ".............x.." - /* 15 */ "................", - - // Connectors: - "-1: 9, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWithGarden - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWithSakura1: - // The data has been exported from the gallery Plains, area index 75, ID 141, created by Aloe_vera - { - // Size: - 13, 7, 15, // SizeX = 13, SizeY = 7, SizeZ = 15 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 6, 15, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 5\n" /* tree */ - "d: 5: 2\n" /* wood */ - "e: 17: 9\n" /* tree */ - "f:113: 0\n" /* netherbrickfence */ - "g: 17: 1\n" /* tree */ - "h: 35: 0\n" /* wool */ - "i: 31: 2\n" /* tallgrass */ - "j: 54: 2\n" /* chest */ - "k: 38: 6\n" /* rose */ - "l: 38: 2\n" /* rose */ - "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o: 85: 0\n" /* fence */ - "p: 44: 8\n" /* step */ - "q: 35: 6\n" /* wool */ - "r: 43: 0\n" /* doubleslab */ - "s: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaaaa" - /* 13 */ "aaaaaaaaaaaaa" - /* 14 */ "aaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "bbbbbbbbbbbbb" - /* 1 */ "bbbbbbbbbbbbb" - /* 2 */ "bbbaccdabbbbb" - /* 3 */ "bbbedddebbbbb" - /* 4 */ "bbbedddebbbbb" - /* 5 */ "bbbedddebbbbb" - /* 6 */ "bbbacccabbbbb" - /* 7 */ "bbbbbbbbbbbbb" - /* 8 */ "bbbbbbbbbbbbb" - /* 9 */ "bbbbbbbbbbbbb" - /* 10 */ "bbbbbbbbbbabb" - /* 11 */ "bbbbbbbbbbbbb" - /* 12 */ "bbbbbbbbbbbbb" - /* 13 */ "bbbbbbbbbbbbb" - /* 14 */ "bbbbbbbbbbbbb" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ffff...ffffff" - /* 1 */ "f...........f" - /* 2 */ "f..ghh.g..i.f" - /* 3 */ "f..h...h..i.f" - /* 4 */ "f..h...h....f" - /* 5 */ "fi.h..jh..i.f" - /* 6 */ "f..ghhhg....f" - /* 7 */ "f.........i.f" - /* 8 */ "fii.........f" - /* 9 */ "f.k..k.i....f" - /* 10 */ "fl.i..i...g.f" - /* 11 */ "f.i..i.k....f" - /* 12 */ "f.l.k.......f" - /* 13 */ "f.....l.....f" - /* 14 */ "fffffffffffff" - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".......n....." - /* 2 */ "...goo.g....." - /* 3 */ "...h...h....." - /* 4 */ "...o...o....." - /* 5 */ "...h...h....." - /* 6 */ "...gooog....." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "..........g.." - /* 11 */ "............." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "...ppppp....." - /* 2 */ "..pghhhgp...." - /* 3 */ "..ph...hp...." - /* 4 */ "..ph...hp...." - /* 5 */ "..ph...hp...." - /* 6 */ "..pghhhgp...." - /* 7 */ "...ppppp....." - /* 8 */ "............." - /* 9 */ "..........q.." - /* 10 */ ".........qgq." - /* 11 */ "..........q.." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ "............." - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "..rs...sr...." - /* 2 */ "..sssssss...." - /* 3 */ "...srrrs....." - /* 4 */ "...srrrs....." - /* 5 */ "...srrrs....." - /* 6 */ "..sssssss...." - /* 7 */ "..rs...sr...." - /* 8 */ "............." - /* 9 */ ".........qqq." - /* 10 */ ".........qqq." - /* 11 */ ".........qqq." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ ".....s......." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "..........q.." - /* 11 */ "............." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ ".............", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWithSakura1 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWithSpa: - // The data has been exported from the gallery Plains, area index 73, ID 139, created by Aloe_vera - { - // Size: - 16, 8, 14, // SizeX = 16, SizeY = 8, SizeZ = 14 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 15, 7, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 3: 0\n" /* dirt */ - "c: 2: 0\n" /* grass */ - "d: 8: 0\n" /* water */ - "e:135: 3\n" /* 135 */ - "f:135: 1\n" /* 135 */ - "g:113: 0\n" /* netherbrickfence */ - "h: 17: 1\n" /* tree */ - "i: 35: 0\n" /* wool */ - "j:171:12\n" /* carpet */ - "k: 64: 6\n" /* wooddoorblock */ - "l:126: 2\n" /* woodenslab */ - "m: 19: 0\n" /* sponge */ - "n:135: 2\n" /* 135 */ - "o: 64: 7\n" /* wooddoorblock */ - "p: 50: 4\n" /* torch */ - "q: 85: 0\n" /* fence */ - "r: 64:12\n" /* wooddoorblock */ - "s: 50: 3\n" /* torch */ - "t: 44: 8\n" /* step */ - "u: 43: 0\n" /* doubleslab */ - "v: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaaaa." - /* 7 */ ".aaaaaabbbbbbbbb" - /* 8 */ ".aaaaaabbbbbbbbb" - /* 9 */ ".aaaaaabbbbbbbbb" - /* 10 */ ".aaaaaabbbbbbbbb" - /* 11 */ ".aaaaaabbbbbbbbb" - /* 12 */ ".aaaaaabbbbbbbbb" - /* 13 */ ".......bbbbbbbbb" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmmmmmmmm" - /* 1 */ "maaaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaccccc" - /* 8 */ "maaaaaaacccccccc" - /* 9 */ "maaaaaaacccccccc" - /* 10 */ "maaaaaaacccccccc" - /* 11 */ "maaaaaaccccccccc" - /* 12 */ "maaaaaaccccccccc" - /* 13 */ "mmmmmmmccccccccc" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaaa." - /* 6 */ ".aaddaaaaaaaaaa." - /* 7 */ ".aaddaaeeef....." - /* 8 */ ".aaddaaf........" - /* 9 */ ".aaddaaf........" - /* 10 */ ".aaddaae........" - /* 11 */ ".aaddaa........." - /* 12 */ ".aaaaaa........." - /* 13 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".ggggghiiihiiih." - /* 2 */ ".geee.ijjjjjjji." - /* 3 */ ".gf...kjjjijlji." - /* 4 */ ".gf...innjijjji." - /* 5 */ ".g....hiiohiiih." - /* 6 */ ".g....g........." - /* 7 */ ".g.............." - /* 8 */ ".g.............." - /* 9 */ ".g.............." - /* 10 */ ".g....g........." - /* 11 */ ".g....g........." - /* 12 */ ".gggggg........." - /* 13 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "......p...p...p." - /* 1 */ ".g....hqqqhqqqh." - /* 2 */ "......i.......i." - /* 3 */ "......r...q...q." - /* 4 */ "......i...q...i." - /* 5 */ "......hqqrhqqqh." - /* 6 */ "......g...s....." - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ ".g....g........." - /* 13 */ "................" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ ".tttttttttttttt." - /* 1 */ "tggggghqqqhqqqht" - /* 2 */ "tg....i.......it" - /* 3 */ "tg....i...i...it" - /* 4 */ "tg....i...i...it" - /* 5 */ "tg....hiiihiiiht" - /* 6 */ "tg....gtttttttt." - /* 7 */ "tg....gt........" - /* 8 */ "tg....gt........" - /* 9 */ "tg....gt........" - /* 10 */ "tg....gt........" - /* 11 */ "tg....gt........" - /* 12 */ "tggggggt........" - /* 13 */ ".tttttt........." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "uv............vu" - /* 1 */ "vvvvvvvvvvvvvvvv" - /* 2 */ ".vuuuuuuuuuuuuv." - /* 3 */ ".vuuuuuutuuuuuv." - /* 4 */ ".vuuuuuuuuuuuuv." - /* 5 */ ".vuuuuvvvvvvvvvv" - /* 6 */ ".vuuuuv.......vu" - /* 7 */ ".vuuuuv........." - /* 8 */ ".vuuuuv........." - /* 9 */ ".vuuuuv........." - /* 10 */ ".vuuuuv........." - /* 11 */ ".vuuuuv........." - /* 12 */ "vvvvvvvv........" - /* 13 */ "uv....vu........" - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "...vvvvvvvvvv..." - /* 4 */ "...vv..........." - /* 5 */ "...vv..........." - /* 6 */ "...vv..........." - /* 7 */ "...vv..........." - /* 8 */ "...vv..........." - /* 9 */ "...vv..........." - /* 10 */ "...vv..........." - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................", - - // Connectors: - "", - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWithSpa - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumSakuraTree: - // The data has been exported from the gallery Plains, area index 146, ID 490, created by STR_Warrior - { - // Size: - 7, 10, 7, // SizeX = 7, SizeY = 10, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 9, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 31: 1\n" /* tallgrass */ - "d: 38: 7\n" /* rose */ - "e: 17: 1\n" /* tree */ - "f: 38: 0\n" /* rose */ - "g: 38: 8\n" /* rose */ - "h: 38: 5\n" /* rose */ - "i: 35: 6\n" /* wool */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "bbbbbbb" - /* 1 */ "bbbbbbb" - /* 2 */ "bbbbbbb" - /* 3 */ "bbbabbb" - /* 4 */ "bbbbbbb" - /* 5 */ "bbbbbbb" - /* 6 */ "bbbbbbb" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "m.c...m" - /* 2 */ ".dccdc." - /* 3 */ "..cefc." - /* 4 */ ".ccfgh." - /* 5 */ "m.ccc.m" - /* 6 */ "mm...mm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "m.....m" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "...e..." - /* 4 */ "......." - /* 5 */ "......." - /* 6 */ "m.....m" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..i...." - /* 2 */ "......." - /* 3 */ "...e.i." - /* 4 */ ".i....." - /* 5 */ "......." - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..i...." - /* 2 */ "...i..." - /* 3 */ "..ieii." - /* 4 */ ".i.ii.." - /* 5 */ "...i..." - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..ii..." - /* 2 */ "..iii.." - /* 3 */ ".iieii." - /* 4 */ ".iiii.." - /* 5 */ "..iii.." - /* 6 */ "......." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..iii.." - /* 2 */ ".iiiii." - /* 3 */ ".iieii." - /* 4 */ ".iiiii." - /* 5 */ "..iii.." - /* 6 */ "......." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "...i..." - /* 2 */ "..iiii." - /* 3 */ ".iiiii." - /* 4 */ "..iii.." - /* 5 */ "...i..." - /* 6 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "...i..." - /* 3 */ "..iii.." - /* 4 */ "...i..." - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */ - "3: 6, 2, 3: 5\n" /* Type 3, direction X+ */ - "-3: 0, 2, 3: 4\n" /* Type -3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumSakuraTree - - - - //////////////////////////////////////////////////////////////////////////////// - // Restaurant: - // The data has been exported from the gallery Plains, area index 61, ID 117, created by Aloe_vera - { - // Size: - 15, 10, 15, // SizeX = 15, SizeY = 10, SizeZ = 15 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 14, 9, 15, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b:135: 0\n" /* 135 */ - "c:135: 2\n" /* 135 */ - "d:135: 1\n" /* 135 */ - "e: 17: 9\n" /* tree */ - "f:135: 3\n" /* 135 */ - "g: 85: 0\n" /* fence */ - "h: 17: 1\n" /* tree */ - "i:171: 0\n" /* carpet */ - "j:171:12\n" /* carpet */ - "k:126: 1\n" /* woodenslab */ - "l: 50: 5\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 35: 0\n" /* wool */ - "o: 50: 3\n" /* torch */ - "p: 50: 1\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 35:14\n" /* wool */ - "s: 44: 8\n" /* step */ - "t: 43: 0\n" /* doubleslab */ - "u: 44: 0\n" /* step */ - "v: 17: 5\n" /* tree */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmaaaaaaammmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaa" - /* 11 */ "maaaaaaaaaaaaam" - /* 12 */ "maaaaaaaaaaaaam" - /* 13 */ "maaaaaaaaaaaaam" - /* 14 */ "mmmmaaaaaaammmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "....bcccccd...." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaa." - /* 4 */ "caaaaaaaaaaaaac" - /* 5 */ "baaaaaaaaaaaaad" - /* 6 */ "baaaaaaaaaaaaad" - /* 7 */ "baaaaaaaaaaeaad" - /* 8 */ "baaaaaaaaaaaaad" - /* 9 */ "baaaaaaaaaaaaad" - /* 10 */ "faaaaaaaaaaaaaf" - /* 11 */ ".aaaaaaaaaaaaa." - /* 12 */ ".aaaaaaaaaaaaa." - /* 13 */ ".aaaaaaaaaaaaa." - /* 14 */ "....bfffffd...." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".gggg.....gggg." - /* 2 */ ".g...........g." - /* 3 */ ".g.hhhhhhhhh.g." - /* 4 */ ".g.hiiijiiih.g." - /* 5 */ "...hikijikih..." - /* 6 */ "...hiiijiiihg.." - /* 7 */ "...hjjjjjjj...." - /* 8 */ "...hiiijiiihg.." - /* 9 */ "...hikijikih..." - /* 10 */ ".g.hiiijiiih.g." - /* 11 */ ".g.hhhhhhhhh.g." - /* 12 */ ".g...........g." - /* 13 */ ".gggg.....gggg." - /* 14 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".l..g.....g..l." - /* 2 */ "..............." - /* 3 */ "...hnnnhnnnh..." - /* 4 */ ".g.n.......n.g." - /* 5 */ "...n.......n..." - /* 6 */ "...n.......hl.." - /* 7 */ "...h..........." - /* 8 */ "...n.......hl.." - /* 9 */ "...n.......n..." - /* 10 */ ".g.n.......n.g." - /* 11 */ "...hnnnhnnnh..." - /* 12 */ "..............." - /* 13 */ ".l..g.....g..l." - /* 14 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "....g.....g...." - /* 2 */ "..............." - /* 3 */ "...hn.nhn.nh..." - /* 4 */ ".g.n...o...n.g." - /* 5 */ "...n.......n..." - /* 6 */ "...n.......h..." - /* 7 */ "...hp......e..." - /* 8 */ "...n.......h..." - /* 9 */ "...n.......n..." - /* 10 */ ".g.n...q...n.g." - /* 11 */ "...hn.nhn.nh..." - /* 12 */ "..............." - /* 13 */ "....g.....g...." - /* 14 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "....g.....g...." - /* 2 */ "....ggggggg...." - /* 3 */ "...hnnnhnnnh..." - /* 4 */ ".ggn.......ngg." - /* 5 */ "..gn.......ng.." - /* 6 */ "..gn.......hg.." - /* 7 */ "..gh..r.r..ng.." - /* 8 */ "..gn.......hg.." - /* 9 */ "..gn.......ng.." - /* 10 */ ".ggn.......ngg." - /* 11 */ "...hnnnhnnnh..." - /* 12 */ "....ggggggg...." - /* 13 */ "....g.....g...." - /* 14 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "...stuuuuuts..." - /* 2 */ "..sttttttttts.." - /* 3 */ ".sthvvvhvvvhts." - /* 4 */ ".tte.......ett." - /* 5 */ ".ute.......etu." - /* 6 */ ".ute.......htu." - /* 7 */ ".uth..g.g..etu." - /* 8 */ ".ute.......htu." - /* 9 */ ".ute.......etu." - /* 10 */ ".tte.......ett." - /* 11 */ ".sthvvvhvvvhts." - /* 12 */ "..sttttttttts.." - /* 13 */ "...stuuuuuts..." - /* 14 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".stu.......uts." - /* 2 */ ".tu.........ut." - /* 3 */ ".u.uuuuuuuuu.u." - /* 4 */ "...utttttttu..." - /* 5 */ "...utttttttu..." - /* 6 */ "...utttttttu..." - /* 7 */ "...utttttttu..." - /* 8 */ "...utttttttu..." - /* 9 */ "...utttttttu..." - /* 10 */ "...utttttttu..." - /* 11 */ ".u.uuuuuuuuu.u." - /* 12 */ ".tu.........ut." - /* 13 */ ".stu.......uts." - /* 14 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".u...........u." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ ".....uuuuu....." - /* 6 */ ".....utttu....." - /* 7 */ ".....utttu....." - /* 8 */ ".....utttu....." - /* 9 */ ".....uuuuu....." - /* 10 */ "..............." - /* 11 */ "..............." - /* 12 */ "..............." - /* 13 */ ".u...........u." - /* 14 */ "..............." - - // Level 9 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".......u......." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - /* 11 */ "..............." - /* 12 */ "..............." - /* 13 */ "..............." - /* 14 */ "...............", - - // Connectors: - "-1: 14, 1, 7: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Restaurant - - - - //////////////////////////////////////////////////////////////////////////////// - // SakuraDouble: - // The data has been exported from the gallery Plains, area index 76, ID 142, created by Aloe_vera - { - // Size: - 12, 8, 6, // SizeX = 12, SizeY = 8, SizeZ = 6 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 12, 7, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 1\n" /* tree */ - "d: 35: 6\n" /* wool */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaa" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "bbbbbbbbbbbb" - /* 1 */ "bbbbbbbbbbbb" - /* 2 */ "bbabbbbbbbbb" - /* 3 */ "bbbbbbbbbabb" - /* 4 */ "bbbbbbbbbbbb" - /* 5 */ "bbbbbbbbbbbb" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "..c........." - /* 3 */ ".........c.." - /* 4 */ "............" - /* 5 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "..c........." - /* 3 */ ".........c.." - /* 4 */ "............" - /* 5 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "..d........." - /* 1 */ "ddddd......." - /* 2 */ "ddcdd...ddd." - /* 3 */ "ddddd...dcd." - /* 4 */ "..d.....ddd." - /* 5 */ "............" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".ddd........" - /* 1 */ ".ddd....ddd." - /* 2 */ "ddddd..ddddd" - /* 3 */ ".ddd...ddcdd" - /* 4 */ ".ddd...ddddd" - /* 5 */ "........ddd." - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "..d......d.." - /* 2 */ ".ddd....ddd." - /* 3 */ "..d....ddddd" - /* 4 */ "........ddd." - /* 5 */ ".........d.." - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ ".........d.." - /* 4 */ "............" - /* 5 */ "............", - - // Connectors: - "-1: -1, 2, 2: 4\n" /* Type -1, direction X- */ - "3: 5, 2, 6: 3\n" /* Type 3, direction Z+ */ - "-3: 6, 2, -1: 2\n" /* Type -3, direction Z- */ - "-3: 12, 2, 2: 5\n" /* Type -3, direction X+ */ - "3: 12, 2, 2: 5\n" /* Type 3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SakuraDouble - - - - //////////////////////////////////////////////////////////////////////////////// - // SakuraSmall: - // The data has been exported from the gallery Plains, area index 145, ID 489, created by Aloe_vera - { - // Size: - 5, 7, 5, // SizeX = 5, SizeY = 7, SizeZ = 5 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 5, 6, 5, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 1\n" /* tree */ - "d: 35: 6\n" /* wool */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bbbbb" - /* 2 */ "bbabb" - /* 3 */ "bbbbb" - /* 4 */ "bbbbb" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..c.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..c.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "..d.." - /* 1 */ "ddddd" - /* 2 */ "ddcdd" - /* 3 */ "ddddd" - /* 4 */ "..d.." - - // Level 5 - /* z\x* 01234 */ - /* 0 */ ".ddd." - /* 1 */ ".ddd." - /* 2 */ "ddddd" - /* 3 */ ".ddd." - /* 4 */ ".ddd." - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "..d.." - /* 2 */ ".ddd." - /* 3 */ "..d.." - /* 4 */ ".....", - - // Connectors: - "-1: 2, 2, -1: 2\n" /* Type -1, direction Z- */ - "3: 5, 2, 2: 5\n" /* Type 3, direction X+ */ - "-3: -1, 2, 2: 4\n" /* Type -3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SakuraSmall -}; // g_JapaneseVillagePrefabs - - - - - - -const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // HighTemple: - // The data has been exported from the gallery Plains, area index 70, ID 133, created by Aloe_vera - { - // Size: - 11, 19, 11, // SizeX = 11, SizeY = 19, SizeZ = 11 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 18, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b:135: 0\n" /* 135 */ - "c:135: 2\n" /* 135 */ - "d:135: 1\n" /* 135 */ - "e: 17: 9\n" /* tree */ - "f:135: 3\n" /* 135 */ - "g: 85: 0\n" /* fence */ - "h: 17: 1\n" /* tree */ - "i:171: 0\n" /* carpet */ - "j: 50: 5\n" /* torch */ - "k: 35: 0\n" /* wool */ - "l: 17: 5\n" /* tree */ - "m: 19: 0\n" /* sponge */ - "n:124: 0\n" /* redstonelampon */ - "o: 69: 9\n" /* lever */ - "p: 44: 8\n" /* step */ - "q: 43: 0\n" /* doubleslab */ - "r: 44: 0\n" /* step */ - "s: 50: 4\n" /* torch */ - "t: 50: 1\n" /* torch */ - "u: 50: 3\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmaaaaammm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "maaaaaaaaam" - /* 9 */ "maaaaaaaaam" - /* 10 */ "mmmaaaaammm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "...bcccd..." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ "caaaaaaaaac" - /* 4 */ "baaaaaaaaad" - /* 5 */ "baaeaaaaaad" - /* 6 */ "baaaaaaaaad" - /* 7 */ "faaaaaaaaaf" - /* 8 */ ".aaaaaaaaa." - /* 9 */ ".aaaaaaaaa." - /* 10 */ "...bfffd..." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ggg...ggg." - /* 2 */ ".g.......g." - /* 3 */ ".g.hhhhh.g." - /* 4 */ "...hiiih..." - /* 5 */ "....iiih..." - /* 6 */ "...hiiih..." - /* 7 */ ".g.hhhhh.g." - /* 8 */ ".g.......g." - /* 9 */ ".ggg...ggg." - /* 10 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".j.g...g.j." - /* 2 */ "..........." - /* 3 */ ".g.kkhkk.g." - /* 4 */ "...h...k..." - /* 5 */ ".......h..." - /* 6 */ "...h...k..." - /* 7 */ ".g.kkhkk.g." - /* 8 */ "..........." - /* 9 */ ".j.g...g.j." - /* 10 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "...g...g..." - /* 2 */ "..........." - /* 3 */ ".g.kkhkk.g." - /* 4 */ "...h...k..." - /* 5 */ "...k...h..." - /* 6 */ "...h...k..." - /* 7 */ ".g.kkhkk.g." - /* 8 */ "..........." - /* 9 */ "...g...g..." - /* 10 */ "..........." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "...g...g..." - /* 2 */ "...ggggg..." - /* 3 */ ".gghlhlhgg." - /* 4 */ "..ge...eg.." - /* 5 */ "..ge.nohg.." - /* 6 */ "..ge...eg.." - /* 7 */ ".gghlhlhgg." - /* 8 */ "...ggggg..." - /* 9 */ "...g...g..." - /* 10 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..pqrrrqp.." - /* 2 */ ".pqqqqqqqp." - /* 3 */ ".qqhkkkhqq." - /* 4 */ ".rqkhhhkqr." - /* 5 */ ".rqkhhhkqr." - /* 6 */ ".rqkhhhkqr." - /* 7 */ ".qqhkkkhqq." - /* 8 */ ".pqqqqqqqp." - /* 9 */ "..pqrrrqp.." - /* 10 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".qr.....rq." - /* 2 */ ".........r." - /* 3 */ "...hhhhh..." - /* 4 */ "...hiiih..." - /* 5 */ "....iiih..." - /* 6 */ "...hiiih..." - /* 7 */ "...hhhhh..." - /* 8 */ ".r.......r." - /* 9 */ ".qr.....rq." - /* 10 */ "..........." - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ ".......h..." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ ".....s....." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ "...k...ht.." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ ".....u....." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 10 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "...ggggg..." - /* 3 */ "..ghlhlhg.." - /* 4 */ "..ge...eg.." - /* 5 */ "..ge.nohg.." - /* 6 */ "..ge...eg.." - /* 7 */ "..ghlhlhg.." - /* 8 */ "...ggggg..." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 11 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..prrrrrp.." - /* 2 */ ".pqqqqqqqp." - /* 3 */ ".qqhkkkhqq." - /* 4 */ ".rqkhhhkqr." - /* 5 */ ".rqkhhhkqr." - /* 6 */ ".rqkhhhkqr." - /* 7 */ ".qqhkkkhqr." - /* 8 */ ".pqqqqqqqp." - /* 9 */ "..pqrrrqp.." - /* 10 */ "..........." - - // Level 12 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".qr.....rq." - /* 2 */ ".r.......r." - /* 3 */ "...hhhhh..." - /* 4 */ "...hiiih..." - /* 5 */ "....iiih..." - /* 6 */ "...hiiih..." - /* 7 */ "...hhhhh..." - /* 8 */ ".r.......r." - /* 9 */ ".qr.....rq." - /* 10 */ "..........." - - // Level 13 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ ".......h..." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 14 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ ".....s....." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ "...k...ht.." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ ".....u....." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 15 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "...ggggg..." - /* 3 */ "..ghlhlhg.." - /* 4 */ "..ge...eg.." - /* 5 */ "..ge.nohg.." - /* 6 */ "..ge...eg.." - /* 7 */ "..ghlhlhg.." - /* 8 */ "...ggggg..." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 16 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..pqrrrqp.." - /* 2 */ ".pqqqqqqqp." - /* 3 */ ".qqrrrrrqq." - /* 4 */ ".rqrrrrrqr." - /* 5 */ ".rqrrrrrqr." - /* 6 */ ".rqrrrrrqr." - /* 7 */ ".qqrrrrrqq." - /* 8 */ ".pqqqqqqqp." - /* 9 */ "..pqrrrqp.." - /* 10 */ "..........." - - // Level 17 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".qr.....rq." - /* 2 */ ".rr.....rr." - /* 3 */ "...rrrrr..." - /* 4 */ "...rqqqr..." - /* 5 */ "...rqqqr..." - /* 6 */ "...rqqqr..." - /* 7 */ "...rrrrr..." - /* 8 */ ".rr.....rr." - /* 9 */ ".qr.....rq." - /* 10 */ "..........." - - // Level 18 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".....r....." - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "...........", - - // Connectors: - "2: 0, 1, 5: 4\n" /* Type 2, direction X- */ - "2: 5, 1, 0: 2\n" /* Type 2, direction Z- */ - "2: 10, 1, 5: 5\n" /* Type 2, direction X+ */ - "2: 5, 1, 10: 3\n" /* Type 2, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HighTemple - - - - //////////////////////////////////////////////////////////////////////////////// - // Well: - // The data has been exported from the gallery Plains, area index 143, ID 487, created by STR_Warrior - { - // Size: - 7, 14, 7, // SizeX = 7, SizeY = 14, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 13, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 13: 0\n" /* gravel */ - "e: 67: 1\n" /* stairs */ - "f: 67: 2\n" /* stairs */ - "g: 67: 0\n" /* stairs */ - "h: 67: 3\n" /* stairs */ - "i: 85: 0\n" /* fence */ - "j: 44: 8\n" /* step */ - "k: 44: 0\n" /* step */ - "l: 43: 0\n" /* doubleslab */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcc.bm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmbbbmm" - /* 1 */ "mbbbbbm" - /* 2 */ "bbcccbb" - /* 3 */ "bbcccbb" - /* 4 */ "bbcccbb" - /* 5 */ "mbbbbbm" - /* 6 */ "mmbbbmm" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmdddmm" - /* 1 */ "mbbbbbm" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "mbbbbbm" - /* 6 */ "mmdddmm" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mbefgbm" - /* 2 */ ".h...h." - /* 3 */ ".g...e." - /* 4 */ ".f...f." - /* 5 */ "mbehgbm" - /* 6 */ "mm...mm" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mi...im" - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "mi...im" - /* 6 */ "mm...mm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mi...im" - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "mi...im" - /* 6 */ "mm...mm" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "mjkkkjm" - /* 1 */ "jlllllj" - /* 2 */ "klllllk" - /* 3 */ "klllllk" - /* 4 */ "klllllk" - /* 5 */ "jlllllj" - /* 6 */ "mjkkkjm" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "k.....k" - /* 1 */ "......." - /* 2 */ "..kkk.." - /* 3 */ "..klk.." - /* 4 */ "..kkk.." - /* 5 */ "......." - /* 6 */ "k.....k", - - // Connectors: - "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */ - "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_JapaneseVillagePrefabsCount = ARRAYCOUNT(g_JapaneseVillagePrefabs); - -const size_t g_JapaneseVillageStartingPrefabsCount = ARRAYCOUNT(g_JapaneseVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.h b/src/Generating/Prefabs/JapaneseVillagePrefabs.h deleted file mode 100644 index 501b6c1cd..000000000 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// JapaneseVillagePrefabs.h - -// Declares the prefabs in the group JapaneseVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_JapaneseVillagePrefabs[]; -extern const cPrefab::sDef g_JapaneseVillageStartingPrefabs[]; -extern const size_t g_JapaneseVillagePrefabsCount; -extern const size_t g_JapaneseVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp deleted file mode 100644 index 4613f76e2..000000000 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ /dev/null @@ -1,6118 +0,0 @@ - -// PlainsVillagePrefabs.cpp - -// Defines the prefabs in the group PlainsVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "PlainsVillagePrefabs.h" - - - - - -const cPrefab::sDef g_PlainsVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // BigPlantBed: - // The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton - { - // Size: - 13, 8, 12, // SizeX = 13, SizeY = 8, SizeZ = 12 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 7, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 5: 0\n" /* wood */ - "c: 13: 0\n" /* gravel */ - "d: 17: 0\n" /* tree */ - "e: 60: 7\n" /* tilleddirt */ - "f: 8: 0\n" /* water */ - "g: 85: 0\n" /* fence */ - "h: 59: 7\n" /* crops */ - "i: 50: 5\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "bbbbbbbbbbbbb" - /* 1 */ "bcccccccccccb" - /* 2 */ "bcccccccccccb" - /* 3 */ "bcccccccccccb" - /* 4 */ "bcccccccccccb" - /* 5 */ "bcccccccccccb" - /* 6 */ "bcccccccccccb" - /* 7 */ "bcccccccccccb" - /* 8 */ "bcccccccccccb" - /* 9 */ "bcccccccccccb" - /* 10 */ "bcccccccccccb" - /* 11 */ "bbbbbbbbbbbbb" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ddddddddddddd" - /* 1 */ "deefeefeefeed" - /* 2 */ "deefeefeefeed" - /* 3 */ "deefeefeefeed" - /* 4 */ "deefeefeefeed" - /* 5 */ "deefeefeefeed" - /* 6 */ "deefeefeefeed" - /* 7 */ "deefeefeefeed" - /* 8 */ "deefeefeefeed" - /* 9 */ "deefeefeefeed" - /* 10 */ "deefeefeefeed" - /* 11 */ "ddddddddddddd" - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "g..g..g..g..g" - /* 1 */ "ghh.h..hh.hhg" - /* 2 */ "ghh..h.hh.hhg" - /* 3 */ "ghh.h..h..hhg" - /* 4 */ "ghh.hh.h..hhg" - /* 5 */ "ghh.h..hh.hhg" - /* 6 */ "ghh.hh.hh.hhg" - /* 7 */ "ghh....h..hhg" - /* 8 */ "ghh..h....hhg" - /* 9 */ "ghh.....h.hhg" - /* 10 */ "ghh.hh.h..hhg" - /* 11 */ "g..g..g..g..g" - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "i..i..i..i..i" - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ "i..i..i..i..i" - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ "............." - - // Level 7 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ ".............", - - // Connectors: - "-1: 7, 1, 11: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // BigPlantBed - - - - //////////////////////////////////////////////////////////////////////////////// - // CobbleHouse10x5Library: - // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft - { - // Size: - 12, 7, 7, // SizeX = 12, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 12, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 53: 3\n" /* woodstairs */ - "g: 53: 1\n" /* woodstairs */ - "h: 85: 0\n" /* fence */ - "i: 53: 0\n" /* woodstairs */ - "j: 53: 2\n" /* woodstairs */ - "k:102: 0\n" /* glasspane */ - "l: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 72: 0\n" /* woodplate */ - "p: 50: 4\n" /* torch */ - "q: 53: 7\n" /* woodstairs */ - "r: 47: 0\n" /* bookshelf */ - "s: 50: 1\n" /* torch */ - "t: 50: 2\n" /* torch */ - "u: 53: 6\n" /* woodstairs */ - "v: 5: 0\n" /* wood */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmmmaaamm" - /* 1 */ "maaaaaaaaaam" - /* 2 */ "maaaaaaaaaam" - /* 3 */ "maaaaaaaaaam" - /* 4 */ "maaaaaaaaaam" - /* 5 */ "maaaaaaaaaam" - /* 6 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".......bcd.." - /* 1 */ ".aaaaaaaaaa." - /* 2 */ ".aaaaaaaaaa." - /* 3 */ ".aaaaaaaaaa." - /* 4 */ ".aaaaaaaaaa." - /* 5 */ ".aaaaaaaaaa." - /* 6 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".aaaaaaaeaa." - /* 2 */ ".af.ghi...a." - /* 3 */ ".ah.......a." - /* 4 */ ".aj.ghighia." - /* 5 */ ".aaaaaaaaaa." - /* 6 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".akkakkalaa." - /* 2 */ ".k..no.n.nk." - /* 3 */ ".ko.......k." - /* 4 */ ".k..po.po.k." - /* 5 */ ".akkakkakka." - /* 6 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "jjjjjjjjjjjj" - /* 1 */ "qaaaaaaaaaaq" - /* 2 */ ".arrrrrrrra." - /* 3 */ ".as......ta." - /* 4 */ ".arrrrrrrra." - /* 5 */ "uaaaaaaaaaau" - /* 6 */ "ffffffffffff" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "jjjjjjjjjjjj" - /* 2 */ "qvvvvvvvvvvq" - /* 3 */ ".vvvvvvvvvv." - /* 4 */ "uvvvvvvvvvvu" - /* 5 */ "ffffffffffff" - /* 6 */ "............" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "jjjjjjjjjjjj" - /* 3 */ "vvvvvvvvvvvv" - /* 4 */ "ffffffffffff" - /* 5 */ "............" - /* 6 */ "............", - - // Connectors: - "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // CobbleHouse10x5Library - - - - //////////////////////////////////////////////////////////////////////////////// - // DoublePlantBed: - // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 - { - // Size: - 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 7, 8, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 0\n" /* tree */ - "d: 60: 7\n" /* tilleddirt */ - "e: 8: 0\n" /* water */ - "f: 50: 5\n" /* torch */ - "g: 59: 7\n" /* crops */ - "h: 59: 3\n" /* crops */ - "i: 59: 5\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "aaaaaaabaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaabaaaaaaa" - /* 5 */ "aaaaaaabaaaaaaa" - /* 6 */ "aaaaaaabaaaaaaa" - /* 7 */ "aaaaaaabaaaaaaa" - /* 8 */ "aaaaaaabaaaaaaa" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "aaaaaaamaaaaaaa" - /* 1 */ "aaaaaaamaaaaaaa" - /* 2 */ "aaaaaaamaaaaaaa" - /* 3 */ "aaaaaaamaaaaaaa" - /* 4 */ "aaaaaaamaaaaaaa" - /* 5 */ "aaaaaaamaaaaaaa" - /* 6 */ "aaaaaaamaaaaaaa" - /* 7 */ "aaaaaaamaaaaaaa" - /* 8 */ "aaaaaaamaaaaaaa" - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "ccccccc.ccccccc" - /* 1 */ "cddeddc.cddeddc" - /* 2 */ "cddeddc.cddeddc" - /* 3 */ "cddeddc.cddeddc" - /* 4 */ "cddeddc.cddeddc" - /* 5 */ "cddeddc.cddeddc" - /* 6 */ "cddeddc.cddeddc" - /* 7 */ "cddeddc.cddeddc" - /* 8 */ "ccccccc.ccccccc" - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "f.....f.f.....f" - /* 1 */ ".gg.gg...gg.gg." - /* 2 */ ".gg.hg...gg.gg." - /* 3 */ ".gg.gi...gg.gg." - /* 4 */ ".gg.gg...gg.gg." - /* 5 */ ".gg.gg...gg.gg." - /* 6 */ ".gg.gg...gg.gg." - /* 7 */ ".gg.gg...gg.gg." - /* 8 */ "f.....f.f.....f" - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", - - // Connectors: - "-1: 7, 2, 8: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // DoublePlantBed - - - - //////////////////////////////////////////////////////////////////////////////// - // Forge: - // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera - { - // Size: - 12, 9, 11, // SizeX = 12, SizeY = 9, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 12, 8, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 2\n" /* wooddoorblock */ - "h: 10: 0\n" /* lava */ - "i: 54: 2\n" /* chest */ - "j: 61: 2\n" /* furnace */ - "k:102: 0\n" /* glasspane */ - "l: 64: 8\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n:139: 0\n" /* cobblestonewall */ - "o:101: 0\n" /* ironbars */ - "p: 53: 2\n" /* woodstairs */ - "q: 53: 7\n" /* woodstairs */ - "r: 50: 2\n" /* torch */ - "s: 50: 1\n" /* torch */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */ - "v: 43: 0\n" /* doubleslab */ - "w: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmaaaaamm" - /* 1 */ "maaaaaaaaamm" - /* 2 */ "maaaaaaaaamm" - /* 3 */ "maaaaaaaaaaa" - /* 4 */ "maaaaaaaaaaa" - /* 5 */ "maaaaaaaaaaa" - /* 6 */ "maaaaaaaaaaa" - /* 7 */ "maaaaaaaaaaa" - /* 8 */ "maaaaammmmmm" - /* 9 */ "maaaaammmmmm" - /* 10 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".....bcccd.." - /* 1 */ ".aaaaaaaad.." - /* 2 */ ".aaaaaaaad.." - /* 3 */ ".aaaaaaaaaaa" - /* 4 */ ".aaaaaaaaaaa" - /* 5 */ ".aaaaaaaaaaa" - /* 6 */ ".aaaaaaaaaaa" - /* 7 */ ".aaaaaaaaaaa" - /* 8 */ ".aaaaa......" - /* 9 */ ".aaaaa......" - /* 10 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".efffe......" - /* 2 */ ".f...g......" - /* 3 */ ".f...ea..aaa" - /* 4 */ ".f...f...aha" - /* 5 */ ".f...f...aha" - /* 6 */ ".f...fijjaha" - /* 7 */ ".f...eaaaaaa" - /* 8 */ ".f...f......" - /* 9 */ ".efffe......" - /* 10 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".ekkke......" - /* 2 */ ".k...l......" - /* 3 */ ".k...en..n.a" - /* 4 */ ".k...k.....o" - /* 5 */ ".f...k.....o" - /* 6 */ ".k...k.....o" - /* 7 */ ".k...eaooooa" - /* 8 */ ".k...f......" - /* 9 */ ".ekkke......" - /* 10 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "ppppppp....." - /* 1 */ "qfffffq....." - /* 2 */ ".f...f......" - /* 3 */ ".f..rfa..aoa" - /* 4 */ ".f...f...o.a" - /* 5 */ ".f...f...o.a" - /* 6 */ ".fs..f...o.a" - /* 7 */ ".f...faaaaaa" - /* 8 */ ".f...f......" - /* 9 */ "tffffft....." - /* 10 */ "uuuuuuu....." - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "ppppppp....." - /* 2 */ "qfffffq....." - /* 3 */ ".f...fvvvvvv" - /* 4 */ ".f...fvwwwwv" - /* 5 */ ".f...fvwwwwv" - /* 6 */ ".f...fvwwwwv" - /* 7 */ ".f...fvvvvvv" - /* 8 */ "tffffft....." - /* 9 */ "uuuuuuu....." - /* 10 */ "............" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "ppppppp....." - /* 3 */ "qfffffq....." - /* 4 */ ".f...f......" - /* 5 */ ".f...f......" - /* 6 */ ".f...f......" - /* 7 */ "tffffft....." - /* 8 */ "uuuuuuu....." - /* 9 */ "............" - /* 10 */ "............" - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "ppppppp....." - /* 4 */ "qfffffq....." - /* 5 */ ".f...f......" - /* 6 */ "tffffft....." - /* 7 */ "uuuuuuu....." - /* 8 */ "............" - /* 9 */ "............" - /* 10 */ "............" - - // Level 8 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "ppppppp....." - /* 5 */ "fffffff....." - /* 6 */ "uuuuuuu....." - /* 7 */ "............" - /* 8 */ "............" - /* 9 */ "............" - /* 10 */ "............", - - // Connectors: - "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Forge - - - - //////////////////////////////////////////////////////////////////////////////// - // LampPost: - // The data has been exported from the gallery Plains, area index 28, ID 73, created by STR_Warrior - { - // Size: - 3, 7, 3, // SizeX = 3, SizeY = 7, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 2, 6, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 43: 0\n" /* doubleslab */ - "c:139: 0\n" /* cobblestonewall */ - "d: 50: 4\n" /* torch */ - "e: 50: 2\n" /* torch */ - "f: 50: 1\n" /* torch */ - "g: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 012 */ - /* 0 */ "mmm" - /* 1 */ "mam" - /* 2 */ "mmm" - - // Level 1 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ ".b." - /* 2 */ "..." - - // Level 2 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ ".c." - /* 2 */ "..." - - // Level 3 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ ".c." - /* 2 */ "..." - - // Level 4 - /* z\x* 012 */ - /* 0 */ ".d." - /* 1 */ "ebf" - /* 2 */ ".g." - - // Level 5 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ "..." - /* 2 */ "..." - - // Level 6 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ "..." - /* 2 */ "...", - - // Connectors: - "-1: 1, 1, 2: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LampPost - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftCorridor: - // The data has been exported from the gallery Plains, area index 139, ID 447, created by STR_Warrior - { - // Size: - 10, 4, 3, // SizeX = 10, SizeY = 4, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 3, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 85: 0\n" /* fence */ - "c: 66: 1\n" /* tracks */ - "d: 50: 2\n" /* torch */ - "e: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..b....b.." - /* 1 */ "cccccccccc" - /* 2 */ "..b....b.." - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..b....b.." - /* 1 */ ".........." - /* 2 */ "..b....b.." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..a....a.." - /* 1 */ ".dae..dae." - /* 2 */ "..a....a..", - - // Connectors: - "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 9, 1, 1: 5\n" /* Type 3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 200, - - // MoveToGround: - false, - }, // MineshaftCorridor - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftCrossing: - // The data has been exported from the gallery Plains, area index 171, ID 578, created by Aloe_vera - { - // Size: - 5, 4, 5, // SizeX = 5, SizeY = 4, SizeZ = 5 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 3, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 66: 1\n" /* tracks */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "m.b.m" - /* 1 */ ".aba." - /* 2 */ "ccccc" - /* 3 */ ".aba." - /* 4 */ "m.b.m" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m", - - // Connectors: - "3: 4, 1, 2: 5\n" /* Type 3, direction X+ */ - "-3: 4, 1, 2: 5\n" /* Type -3, direction X+ */ - "-3: 2, 1, 4: 3\n" /* Type -3, direction Z+ */ - "3: 2, 1, 4: 3\n" /* Type 3, direction Z+ */ - "3: 0, 1, 2: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 2: 4\n" /* Type -3, direction X- */ - "3: 2, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 2, 1, 0: 2\n" /* Type -3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 1, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftCrossing: - // The data has been exported from the gallery Plains, area index 193, ID 657, created by Aloe_vera - { - // Size: - 11, 4, 11, // SizeX = 11, SizeY = 4, SizeZ = 11 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 3, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 85: 0\n" /* fence */ - "d: 66: 1\n" /* tracks */ - "e: 50: 4\n" /* torch */ - "f: 50: 3\n" /* torch */ - "g: 50: 2\n" /* torch */ - "h: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "mmmmaaammmm" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmaaammmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmm.b.mmmm" - /* 2 */ "mmmmcbcmmmm" - /* 3 */ "mmmm.b.mmmm" - /* 4 */ "..c..b..c.." - /* 5 */ "ddddddddddd" - /* 6 */ "..c..b..c.." - /* 7 */ "mmmm.b.mmmm" - /* 8 */ "mmmmcbcmmmm" - /* 9 */ "mmmm.b.mmmm" - /* 10 */ "mmmm.b.mmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm...mmmm" - /* 4 */ "..c.....c.." - /* 5 */ "..........." - /* 6 */ "..c.....c.." - /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmmc.cmmmm" - /* 9 */ "mmmm...mmmm" - /* 10 */ "mmmm...mmmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm.e.mmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmm.f.mmmm" - /* 4 */ "..a.....a.." - /* 5 */ ".gah...gah." - /* 6 */ "..a.....a.." - /* 7 */ "mmmm.e.mmmm" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmm.f.mmmm" - /* 10 */ "mmmm...mmmm", - - // Connectors: - "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */ - "3: 0, 1, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 5: 4\n" /* Type -3, direction X- */ - "3: 5, 1, 10: 3\n" /* Type 3, direction Z+ */ - "-3: 5, 1, 10: 3\n" /* Type -3, direction Z+ */ - "3: 10, 1, 5: 5\n" /* Type 3, direction X+ */ - "-3: 10, 1, 5: 5\n" /* Type -3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 10, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftDoubleCrossing: - // The data has been exported from the gallery Plains, area index 172, ID 579, created by Aloe_vera - { - // Size: - 5, 8, 5, // SizeX = 5, SizeY = 8, SizeZ = 5 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 7, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 66: 1\n" /* tracks */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "m.b.m" - /* 1 */ ".aba." - /* 2 */ "ccccc" - /* 3 */ ".aba." - /* 4 */ "m.b.m" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aa.aa" - /* 2 */ "a...a" - /* 3 */ "aa.aa" - /* 4 */ "aaaaa" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 7 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m", - - // Connectors: - "-3: 4, 5, 2: 5\n" /* Type -3, direction X+ */ - "3: 4, 5, 2: 5\n" /* Type 3, direction X+ */ - "-3: 2, 1, 4: 3\n" /* Type -3, direction Z+ */ - "3: 2, 1, 4: 3\n" /* Type 3, direction Z+ */ - "-3: 0, 1, 2: 4\n" /* Type -3, direction X- */ - "3: 0, 1, 2: 4\n" /* Type 3, direction X- */ - "-3: 2, 1, 0: 2\n" /* Type -3, direction Z- */ - "3: 2, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 4, 1, 2: 5\n" /* Type -3, direction X+ */ - "3: 4, 1, 2: 5\n" /* Type 3, direction X+ */ - "-3: 2, 5, 4: 3\n" /* Type -3, direction Z+ */ - "3: 2, 5, 4: 3\n" /* Type 3, direction Z+ */ - "-3: 0, 5, 2: 4\n" /* Type -3, direction X- */ - "3: 0, 5, 2: 4\n" /* Type 3, direction X- */ - "-3: 2, 5, 0: 2\n" /* Type -3, direction Z- */ - "3: 2, 5, 0: 2\n" /* Type 3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 1, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftDoubleCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftSpiral: - // The data has been exported from the gallery Plains, area index 198, ID 662, created by Aloe_vera - { - // Size: - 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 11, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 85: 0\n" /* fence */ - "c: 66: 4\n" /* tracks */ - "d: 66: 0\n" /* tracks */ - "e: 66: 6\n" /* tracks */ - "f: 66: 2\n" /* tracks */ - "g: 50: 1\n" /* torch */ - "h: 50: 3\n" /* torch */ - "i: 66: 1\n" /* tracks */ - "j: 66: 7\n" /* tracks */ - "k: 66: 5\n" /* tracks */ - "l: 50: 2\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 66: 3\n" /* tracks */ - "o: 66: 8\n" /* tracks */ - "p: 50: 4\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "aaabmmm" - /* 4 */ "aaammmm" - /* 5 */ "aaammmm" - /* 6 */ "aaammmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "aaammmm" - /* 3 */ "aaabmmm" - /* 4 */ ".c.mmmm" - /* 5 */ ".d.mmmm" - /* 6 */ ".d.mmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaammm" - /* 1 */ "aaaammm" - /* 2 */ "aaaammm" - /* 3 */ ".c.bmmm" - /* 4 */ "...mmmm" - /* 5 */ "...mmmm" - /* 6 */ "...mmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "b..aamm" - /* 1 */ ".efaamm" - /* 2 */ ".d.aamm" - /* 3 */ "...bmmm" - /* 4 */ "...mmmm" - /* 5 */ "...mmmm" - /* 6 */ "...mmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "b...aaa" - /* 1 */ "...faaa" - /* 2 */ "....aaa" - /* 3 */ "...baaa" - /* 4 */ "...mmmm" - /* 5 */ "mmmmmmm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ag....b" - /* 1 */ "h...ij." - /* 2 */ ".....k." - /* 3 */ "...baaa" - /* 4 */ "mmmmaaa" - /* 5 */ "mmmmmmm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mm....b" - /* 1 */ "mm....." - /* 2 */ "mm....." - /* 3 */ "mmmb.k." - /* 4 */ "mmmaaaa" - /* 5 */ "mmmaaaa" - /* 6 */ "mmmaaaa" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmm..la" - /* 1 */ "mmm...h" - /* 2 */ "mmm...." - /* 3 */ "mmmb..." - /* 4 */ "mmaa.d." - /* 5 */ "mmaano." - /* 6 */ "mmaa..b" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmm..." - /* 3 */ "mmmb..." - /* 4 */ "aaa...." - /* 5 */ "aaan..." - /* 6 */ "aaa...b" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "mmmb..." - /* 4 */ "......." - /* 5 */ "iii...p" - /* 6 */ ".....la" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "mmmbmmm" - /* 4 */ ".....mm" - /* 5 */ ".....mm" - /* 6 */ ".....mm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "mmmbmmm" - /* 4 */ "....mmm" - /* 5 */ "....mmm" - /* 6 */ "....mmm", - - // Connectors: - "3: 1, 1, 6: 3\n" /* Type 3, direction Z+ */ - "-3: 1, 1, 6: 3\n" /* Type -3, direction Z+ */ - "3: 0, 9, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 9, 5: 4\n" /* Type -3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftSpiral - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftStairs: - // The data has been exported from the gallery Plains, area index 195, ID 659, created by Aloe_vera - { - // Size: - 7, 8, 3, // SizeX = 7, SizeY = 8, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 7, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 1\n" /* tracks */ - "c: 66: 2\n" /* tracks */ - "d: 85: 0\n" /* fence */ - "e: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaammmm" - /* 1 */ "aaammmm" - /* 2 */ "aaammmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..aammm" - /* 1 */ "bcaammm" - /* 2 */ "..aammm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "...aamm" - /* 1 */ "..caamm" - /* 2 */ "...aamm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "...daam" - /* 1 */ "...caam" - /* 2 */ "...daam" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "m..d.aa" - /* 1 */ "m...caa" - /* 2 */ "m..d.aa" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mm.d..." - /* 1 */ "mm...bb" - /* 2 */ "mm.d..." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmd..." - /* 1 */ "mmm...." - /* 2 */ "mmmd..." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmma..." - /* 1 */ "mmmae.." - /* 2 */ "mmma...", - - // Connectors: - "3: 0, 1, 1: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 6, 5, 1: 5\n" /* Type 3, direction X+ */ - "-3: 6, 5, 1: 5\n" /* Type -3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftStairs - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftStairsCrossing: - // The data has been exported from the gallery Plains, area index 199, ID 663, created by Aloe_vera - { - // Size: - 11, 12, 12, // SizeX = 11, SizeY = 12, SizeZ = 12 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 11, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 66: 5\n" /* tracks */ - "d: 85: 0\n" /* fence */ - "e: 66: 1\n" /* tracks */ - "f: 50: 3\n" /* torch */ - "g: 50: 2\n" /* torch */ - "h: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmm.c.mmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmm.c.mmmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmmaaammmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmm...mmmm" - /* 3 */ "mmmmdcdmmmm" - /* 4 */ "mmmmaaammmm" - /* 5 */ "mmmmaaammmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmm...mmmm" - /* 3 */ "mmmmd.dmmmm" - /* 4 */ "mmmm.c.mmmm" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmm...mmmm" - /* 3 */ "mmmmd.dmmmm" - /* 4 */ "mmmm...mmmm" - /* 5 */ "..d..b..d.." - /* 6 */ "eeeeeeeeeee" - /* 7 */ "..d..c..d.." - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmd.dmmmm" - /* 4 */ "mmmm...mmmm" - /* 5 */ "..d.....d.." - /* 6 */ "..........." - /* 7 */ "..d.....d.." - /* 8 */ "mmmm.c.mmmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmaaammmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmm.f.mmmm" - /* 5 */ "..a.....a.." - /* 6 */ ".gah...gah." - /* 7 */ "..a.....a.." - /* 8 */ "mmmm...mmmm" - /* 9 */ "mmmmdcdmmmm" - /* 10 */ "mmmmaaammmm" - /* 11 */ "mmmmaaammmm" - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmm...mmmm" - /* 9 */ "mmmmd.dmmmm" - /* 10 */ "mmmm.c.mmmm" - /* 11 */ "mmmmaaammmm" - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmm...mmmm" - /* 9 */ "mmmmd.dmmmm" - /* 10 */ "mmmm...mmmm" - /* 11 */ "mmmm.b.mmmm" - - // Level 10 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmd.dmmmm" - /* 10 */ "mmmm...mmmm" - /* 11 */ "mmmm...mmmm" - - // Level 11 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmm.f.mmmm" - /* 11 */ "mmmm...mmmm", - - // Connectors: - "3: 0, 5, 6: 4\n" /* Type 3, direction X- */ - "-3: 0, 5, 6: 4\n" /* Type -3, direction X- */ - "3: 10, 5, 6: 5\n" /* Type 3, direction X+ */ - "-3: 10, 5, 6: 5\n" /* Type -3, direction X+ */ - "3: 5, 9, 11: 3\n" /* Type 3, direction Z+ */ - "-3: 5, 9, 11: 3\n" /* Type -3, direction Z+ */ - "3: 5, 1, 1: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 1: 2\n" /* Type -3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 30, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftStairsCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftTee: - // The data has been exported from the gallery Plains, area index 194, ID 658, created by Aloe_vera - { - // Size: - 11, 4, 7, // SizeX = 11, SizeY = 4, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 3, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 85: 0\n" /* fence */ - "d: 66: 1\n" /* tracks */ - "e: 50: 4\n" /* torch */ - "f: 50: 3\n" /* torch */ - "g: 50: 2\n" /* torch */ - "h: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmm.b.mmmm" - /* 2 */ "mmmmcbcmmmm" - /* 3 */ "mmmm.b.mmmm" - /* 4 */ "..c..b..c.." - /* 5 */ "ddddddddddd" - /* 6 */ "..c.....c.." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm...mmmm" - /* 4 */ "..c.....c.." - /* 5 */ "..........." - /* 6 */ "..c.....c.." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm.e.mmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmm.f.mmmm" - /* 4 */ "..a.....a.." - /* 5 */ ".gah...gah." - /* 6 */ "..a.....a..", - - // Connectors: - "3: 0, 1, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 5: 4\n" /* Type -3, direction X- */ - "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */ - "3: 10, 1, 5: 5\n" /* Type 3, direction X+ */ - "-3: 10, 1, 5: 5\n" /* Type -3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftTee - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftsCorridor5: - // The data has been exported from the gallery Plains, area index 200, ID 664, created by Aloe_vera - { - // Size: - 11, 4, 3, // SizeX = 11, SizeY = 4, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 3, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 85: 0\n" /* fence */ - "c: 66: 1\n" /* tracks */ - "d: 50: 2\n" /* torch */ - "e: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..b.....b.." - /* 1 */ "ccccccccccc" - /* 2 */ "..b.....b.." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..b.....b.." - /* 1 */ "..........." - /* 2 */ "..b.....b.." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..a.....a.." - /* 1 */ ".dae...dae." - /* 2 */ "..a.....a..", - - // Connectors: - "3: 10, 1, 1: 5\n" /* Type 3, direction X+ */ - "-3: 10, 1, 1: 5\n" /* Type -3, direction X+ */ - "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 0, 1, 1: 4\n" /* Type 3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftsCorridor5 - - - - //////////////////////////////////////////////////////////////////////////////// - // Scarecrow: - // The data has been exported from the gallery Plains, area index 150, ID 494, created by STR_Warrior - { - // Size: - 1, 6, 3, // SizeX = 1, SizeY = 6, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 0, 5, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a:139: 0\n" /* cobblestonewall */ - "b: 85: 0\n" /* fence */ - "c:126: 4\n" /* woodenslab */ - "d: 86: 1\n" /* pumpkin */ - "e:139: 1\n" /* cobblestonewall */ - "f:163: 4\n" /* acaciawoodenstairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "a" - /* 2 */ "." - - // Level 1 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "b" - /* 2 */ "." - - // Level 2 - /* z\x* 0 */ - /* 0 */ "c" - /* 1 */ "d" - /* 2 */ "c" - - // Level 3 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "e" - /* 2 */ "." - - // Level 4 - /* z\x* 0 */ - /* 0 */ "f" - /* 1 */ "d" - /* 2 */ "f" - - // Level 5 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "f" - /* 2 */ ".", - - // Connectors: - "-1: -1, 0, 1: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 10, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Scarecrow - - - - //////////////////////////////////////////////////////////////////////////////// - // SinglePlantBed: - // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera - { - // Size: - 10, 7, 7, // SizeX = 10, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 6, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 17: 0\n" /* tree */ - "c: 60: 7\n" /* tilleddirt */ - "d: 8: 0\n" /* water */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "bbbbbbbbbb" - /* 1 */ "bccccccccb" - /* 2 */ "bccccccccb" - /* 3 */ "bddddddddb" - /* 4 */ "bccccccccb" - /* 5 */ "bccccccccb" - /* 6 */ "bbbbbbbbbb" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".eeeeeeee." - /* 2 */ ".eeeeeeee." - /* 3 */ ".........." - /* 4 */ ".eeeeeeee." - /* 5 */ ".eeeeeeee." - /* 6 */ ".........." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ ".........." - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ ".........." - - // Level 6 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ "..........", - - // Connectors: - "-1: 9, 1, 3: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SinglePlantBed - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenChurchMid: - // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera - { - // Size: - 7, 15, 13, // SizeX = 7, SizeY = 15, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 7, 14, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 85: 0\n" /* fence */ - "B:126: 8\n" /* woodenslab */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 65: 3\n" /* ladder */ - "i: 53: 3\n" /* woodstairs */ - "j: 53: 7\n" /* woodstairs */ - "k: 64:12\n" /* wooddoorblock */ - "l:102: 0\n" /* glasspane */ - "m: 19: 0\n" /* sponge */ - "n: 50: 1\n" /* torch */ - "o: 50: 2\n" /* torch */ - "p:171:14\n" /* carpet */ - "q: 50: 3\n" /* torch */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 0\n" /* woodstairs */ - "t: 53: 1\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */ - "w: 17: 4\n" /* tree */ - "x: 17: 8\n" /* tree */ - "y: 54: 2\n" /* chest */ - "z: 50: 4\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "maaaaam" - /* 7 */ "maaaaam" - /* 8 */ "maaaaam" - /* 9 */ "maaaaam" - /* 10 */ "maaaaam" - /* 11 */ "maaaaam" - /* 12 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ ".aaaaa." - /* 7 */ ".aaaaa." - /* 8 */ ".aaaaa." - /* 9 */ ".aaaaa." - /* 10 */ ".aaaaa." - /* 11 */ ".aaaaa." - /* 12 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efgfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".ei.ie." - /* 6 */ ".f...f." - /* 7 */ ".fi.if." - /* 8 */ ".f...f." - /* 9 */ ".f.j.f." - /* 10 */ ".f...f." - /* 11 */ ".efffe." - /* 12 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efkfe." - /* 2 */ ".l..hl." - /* 3 */ ".l...l." - /* 4 */ ".l...l." - /* 5 */ ".e...e." - /* 6 */ ".l...l." - /* 7 */ ".l...l." - /* 8 */ ".fn.of." - /* 9 */ ".l.p.l." - /* 10 */ ".l...l." - /* 11 */ ".ellle." - /* 12 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efffe." - /* 2 */ ".f.qhf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "re...er" - /* 6 */ "sf...ft" - /* 7 */ "sf...ft" - /* 8 */ "sf...ft" - /* 9 */ "sf...ft" - /* 10 */ "sf...ft" - /* 11 */ "sefffet" - /* 12 */ "su...vt" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ewwwe." - /* 2 */ ".xffhx." - /* 3 */ ".xfffx." - /* 4 */ ".xfffx." - /* 5 */ ".ewwwe." - /* 6 */ ".sf.ft." - /* 7 */ ".sf.ft." - /* 8 */ ".sf.ft." - /* 9 */ ".sf.ft." - /* 10 */ ".sf.ft." - /* 11 */ ".sffft." - /* 12 */ ".su.vt." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f.y.f." - /* 5 */ ".efffe." - /* 6 */ "..sft.." - /* 7 */ "..sft.." - /* 8 */ "..sft.." - /* 9 */ "..sft.." - /* 10 */ "..sft.." - /* 11 */ "..sft.." - /* 12 */ "..sft.." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".l...l." - /* 4 */ ".f...f." - /* 5 */ ".efffe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f.z.f." - /* 5 */ ".efffe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ewwwe." - /* 2 */ ".xffhx." - /* 3 */ ".xfffx." - /* 4 */ ".xfffx." - /* 5 */ ".ewwwe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eAAAe." - /* 2 */ ".A...A." - /* 3 */ ".A...A." - /* 4 */ ".A...A." - /* 5 */ ".eAAAe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".e...e." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".e...e." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "su...vt" - /* 1 */ "sefffet" - /* 2 */ "sfBBBft" - /* 3 */ "sfBBBft" - /* 4 */ "sfBBBft" - /* 5 */ "sefffet" - /* 6 */ "su...vt" - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ ".su.vt." - /* 1 */ ".sffft." - /* 2 */ ".sffft." - /* 3 */ ".sffft." - /* 4 */ ".sffft." - /* 5 */ ".sffft." - /* 6 */ ".su.vt." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "..sft.." - /* 1 */ "..sft.." - /* 2 */ "..sft.." - /* 3 */ "..sft.." - /* 4 */ "..sft.." - /* 5 */ "..sft.." - /* 6 */ "..sft.." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ ".......", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenChurchMid - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenGranary: - // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera - { - // Size: - 7, 7, 9, // SizeX = 7, SizeY = 7, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 7, 6, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b:170: 0\n" /* haybale */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h:170: 4\n" /* haybale */ - "i:170: 8\n" /* haybale */ - "j: 54: 2\n" /* chest */ - "k: 50: 4\n" /* torch */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 5\n" /* woodstairs */ - "o: 53: 4\n" /* woodstairs */ - "p: 53: 1\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "maaaaam" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "maaaaam" - /* 7 */ "maaaaam" - /* 8 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "bcddde." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ ".aaaaa." - /* 7 */ ".aaaaa." - /* 8 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".f..bf." - /* 2 */ ".g...g." - /* 3 */ ".gb.hg." - /* 4 */ ".fihif." - /* 5 */ ".gbbbg." - /* 6 */ ".gijbg." - /* 7 */ ".fgfgf." - /* 8 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ ".k...k." - /* 1 */ ".f...f." - /* 2 */ ".g...g." - /* 3 */ ".g...g." - /* 4 */ ".fh..f." - /* 5 */ ".ghibg." - /* 6 */ ".ghiig." - /* 7 */ ".fgfgf." - /* 8 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ln...op" - /* 1 */ "lgggggp" - /* 2 */ "lg...gp" - /* 3 */ "lg...gp" - /* 4 */ "lg...gp" - /* 5 */ "lgbb.gp" - /* 6 */ "lgibigp" - /* 7 */ "lgggggp" - /* 8 */ "ln...op" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ ".ln.op." - /* 1 */ ".lgggp." - /* 2 */ ".lg.gp." - /* 3 */ ".lg.gp." - /* 4 */ ".lg.gp." - /* 5 */ ".lg.gp." - /* 6 */ ".lg.gp." - /* 7 */ ".lgggp." - /* 8 */ ".ln.op." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "..lgp.." - /* 1 */ "..lgp.." - /* 2 */ "..lgp.." - /* 3 */ "..lgp.." - /* 4 */ "..lgp.." - /* 5 */ "..lgp.." - /* 6 */ "..lgp.." - /* 7 */ "..lgp.." - /* 8 */ "..lgp..", - - // Connectors: - "-1: 3, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenGranary - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse10x7Library: - // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera - { - // Size: - 12, 8, 9, // SizeX = 12, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 12, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 64: 5\n" /* wooddoorblock */ - "i: 53: 3\n" /* woodstairs */ - "j: 85: 0\n" /* fence */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 0\n" /* woodstairs */ - "o:102: 0\n" /* glasspane */ - "p: 64:12\n" /* wooddoorblock */ - "q: 50: 3\n" /* torch */ - "r: 72: 0\n" /* woodplate */ - "s: 53: 7\n" /* woodstairs */ - "t: 47: 0\n" /* bookshelf */ - "u: 50: 1\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 53: 6\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmaaaammmm" - /* 1 */ "maaaaaaaaaam" - /* 2 */ "maaaaaaaaaam" - /* 3 */ "maaaaaaaaaam" - /* 4 */ "maaaaaaaaaam" - /* 5 */ "maaaaaaaaaam" - /* 6 */ "maaaaaaaaaam" - /* 7 */ "maaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "....bccd...." - /* 1 */ ".aaaaaaaaaa." - /* 2 */ ".aaaaaaaaaa." - /* 3 */ ".aaaaaaaaaa." - /* 4 */ ".aaaaaaaaaa." - /* 5 */ ".aaaaaaaaaa." - /* 6 */ ".aaaaaaaaaa." - /* 7 */ ".aaaaaaaaaa." - /* 8 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".efffghfffe." - /* 2 */ ".f........f." - /* 3 */ ".fi......if." - /* 4 */ ".fj......jf." - /* 5 */ ".fk......kf." - /* 6 */ ".f.ljnljn.f." - /* 7 */ ".effffffffe." - /* 8 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".eoofppfooe." - /* 2 */ ".o..q..q..o." - /* 3 */ ".o........o." - /* 4 */ ".fr......rf." - /* 5 */ ".o........o." - /* 6 */ ".o..r..r..o." - /* 7 */ ".eoofoofooe." - /* 8 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "kkkkkkkkkkkk" - /* 1 */ "sffffffffffs" - /* 2 */ ".fttttttttf." - /* 3 */ ".f........f." - /* 4 */ ".fu......vf." - /* 5 */ ".f........f." - /* 6 */ ".fttttttttf." - /* 7 */ "wffffffffffw" - /* 8 */ "iiiiiiiiiiii" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "kkkkkkkkkkkk" - /* 2 */ "sffffffffffs" - /* 3 */ ".fttttttttf." - /* 4 */ ".f........f." - /* 5 */ ".fttttttttf." - /* 6 */ "wffffffffffw" - /* 7 */ "iiiiiiiiiiii" - /* 8 */ "............" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "kkkkkkkkkkkk" - /* 3 */ "sffffffffffs" - /* 4 */ ".f........f." - /* 5 */ "wffffffffffw" - /* 6 */ "iiiiiiiiiiii" - /* 7 */ "............" - /* 8 */ "............" - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "kkkkkkkkkkkk" - /* 4 */ "ffffffffffff" - /* 5 */ "iiiiiiiiiiii" - /* 6 */ "............" - /* 7 */ "............" - /* 8 */ "............", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse10x7Library - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse5x5: - // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera - { - // Size: - 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 7, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 3\n" /* wooddoorblock */ - "h: 64: 8\n" /* wooddoorblock */ - "i:102: 0\n" /* glasspane */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efgfe." - /* 2 */ ".f...f." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".efffe." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efhfe." - /* 2 */ ".i...i." - /* 3 */ ".i...i." - /* 4 */ ".i...i." - /* 5 */ ".eiiie." - /* 6 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "jjjjjjj" - /* 1 */ "kfffffk" - /* 2 */ ".fl.lf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "nfffffn" - /* 6 */ "ooooooo" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "jjjjjjj" - /* 2 */ "kfffffk" - /* 3 */ ".f...f." - /* 4 */ "nfffffn" - /* 5 */ "ooooooo" - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "jjjjjjj" - /* 3 */ "fffffff" - /* 4 */ "ooooooo" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse5x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse7x5: - // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft - { - // Size: - 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 9, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmaaammm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...bcd..." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".effgffe." - /* 2 */ ".f.....f." - /* 3 */ ".f.....f." - /* 4 */ ".f.....f." - /* 5 */ ".efffffe." - /* 6 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".ehfifhe." - /* 2 */ ".h.....h." - /* 3 */ ".h.....h." - /* 4 */ ".h.....h." - /* 5 */ ".ehhfhhe." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "jjjjjjjjj" - /* 1 */ "kefffffek" - /* 2 */ ".f.l.l.f." - /* 3 */ ".f.....f." - /* 4 */ ".f.....f." - /* 5 */ "nefffffen" - /* 6 */ "ooooooooo" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "jjjjjjjjj" - /* 2 */ "kfffffffk" - /* 3 */ ".f.....f." - /* 4 */ "nfffffffn" - /* 5 */ "ooooooooo" - /* 6 */ "........." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "jjjjjjjjj" - /* 3 */ "fffffffff" - /* 4 */ "ooooooooo" - /* 5 */ "........." - /* 6 */ ".........", - - // Connectors: - "-1: 4, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse7x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5: - // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft - { - // Size: - 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 3\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".efffffffe." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".ehhhfhhhe." - /* 6 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffk" - /* 2 */ ".f..l.l.ff." - /* 3 */ ".f......ff." - /* 4 */ ".f......ff." - /* 5 */ "nfffffffffn" - /* 6 */ "ooooooooooo" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "kfffffffffk" - /* 3 */ ".fffffffff." - /* 4 */ "nfffffffffn" - /* 5 */ "ooooooooooo" - /* 6 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "fffffffffff" - /* 4 */ "ooooooooooo" - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 5, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5Fence: - // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera - { - // Size: - 10, 7, 11, // SizeX = 10, SizeY = 7, SizeZ = 11 - - // Hitbox (relative to bounding box): - 0, -1, -1, // MinX, MinY, MinZ - 10, 6, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 3: 0\n" /* dirt */ - "c: 5: 0\n" /* wood */ - "d: 2: 0\n" /* grass */ - "e: 67: 2\n" /* stairs */ - "f: 43: 0\n" /* doubleslab */ - "g: 67: 0\n" /* stairs */ - "h: 67: 3\n" /* stairs */ - "i: 17: 0\n" /* tree */ - "j: 53: 1\n" /* woodstairs */ - "k: 85: 0\n" /* fence */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 64: 2\n" /* wooddoorblock */ - "o: 64: 4\n" /* wooddoorblock */ - "p:102: 0\n" /* glasspane */ - "q: 72: 0\n" /* woodplate */ - "r: 64: 8\n" /* wooddoorblock */ - "s: 64:12\n" /* wooddoorblock */ - "t: 53: 5\n" /* woodstairs */ - "u: 53: 4\n" /* woodstairs */ - "v: 50: 1\n" /* torch */ - "w: 50: 2\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mmmmmmmmmm" - /* 1 */ "maaaaammmm" - /* 2 */ "maaaaammmm" - /* 3 */ "maaaaabbbb" - /* 4 */ "aaaaaabbbb" - /* 5 */ "aaaaaabbbb" - /* 6 */ "aaaaaabbbb" - /* 7 */ "maaaaabbbb" - /* 8 */ "maaaaabbbb" - /* 9 */ "maaaaammmm" - /* 10 */ "mmmmmmmmmm" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".aaaaammmm" - /* 2 */ ".acccammmm" - /* 3 */ ".acccadddd" - /* 4 */ "eafffadddd" - /* 5 */ "gaffffdddd" - /* 6 */ "hafffadddd" - /* 7 */ ".afffadddd" - /* 8 */ ".afffadddd" - /* 9 */ ".aaaaammmm" - /* 10 */ "......mmmm" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".icccimmmm" - /* 2 */ ".cjklcmmmm" - /* 3 */ ".c...ckkkk" - /* 4 */ ".c...c...k" - /* 5 */ ".n...o...k" - /* 6 */ ".c...c...k" - /* 7 */ ".cff.c...k" - /* 8 */ ".c...ckkkk" - /* 9 */ ".icccimmmm" - /* 10 */ "......mmmm" - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".ipppimmmm" - /* 2 */ ".p.q.pmmmm" - /* 3 */ ".p...p...." - /* 4 */ ".c...c...." - /* 5 */ ".r...s...." - /* 6 */ ".c...c...." - /* 7 */ ".p...p...." - /* 8 */ ".p...p...." - /* 9 */ ".ipppimmmm" - /* 10 */ "......mmmm" - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "lt...ujmmm" - /* 1 */ "licccijmmm" - /* 2 */ "lc...cjmmm" - /* 3 */ "lc...cj..." - /* 4 */ "lcv.wcj..." - /* 5 */ "lc...cj..." - /* 6 */ "lcv.wcj..." - /* 7 */ "lc...cj..." - /* 8 */ "lc...cj..." - /* 9 */ "licccijmmm" - /* 10 */ "lt...ujmmm" - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".lt.uj.mmm" - /* 1 */ ".lcccj.mmm" - /* 2 */ ".lc.cj.mmm" - /* 3 */ ".lc.cj...." - /* 4 */ ".lc.cj...." - /* 5 */ ".lc.cj...." - /* 6 */ ".lc.cj...." - /* 7 */ ".lc.cj...." - /* 8 */ ".lc.cj...." - /* 9 */ ".lcccj.mmm" - /* 10 */ ".lt.uj.mmm" - - // Level 6 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..lcj..mmm" - /* 1 */ "..lcj..mmm" - /* 2 */ "..lcj..mmm" - /* 3 */ "..lcj....." - /* 4 */ "..lcj....." - /* 5 */ "..lcj....." - /* 6 */ "..lcj....." - /* 7 */ "..lcj....." - /* 8 */ "..lcj....." - /* 9 */ "..lcj..mmm" - /* 10 */ "..lcj..mmm", - - // Connectors: - "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x5Fence - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5Library: - // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera - { - // Size: - 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 53: 3\n" /* woodstairs */ - "i: 85: 0\n" /* fence */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 1\n" /* woodstairs */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 3\n" /* torch */ - "q: 72: 0\n" /* woodplate */ - "r: 53: 7\n" /* woodstairs */ - "s: 47: 0\n" /* bookshelf */ - "t: 50: 1\n" /* torch */ - "u: 50: 2\n" /* torch */ - "v: 53: 6\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".fh.....hf." - /* 3 */ ".fi.....if." - /* 4 */ ".fj.kil.jf." - /* 5 */ ".efffffffe." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ennfofnne." - /* 2 */ ".n..p.p..n." - /* 3 */ ".nq.....qn." - /* 4 */ ".n...q...n." - /* 5 */ ".ennnfnnne." - /* 6 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "rfffffffffr" - /* 2 */ ".fsssssssf." - /* 3 */ ".ft.....uf." - /* 4 */ ".fsssssssf." - /* 5 */ "vfffffffffv" - /* 6 */ "hhhhhhhhhhh" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "rfffffffffr" - /* 3 */ ".f.......f." - /* 4 */ "vfffffffffv" - /* 5 */ "hhhhhhhhhhh" - /* 6 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "fffffffffff" - /* 4 */ "hhhhhhhhhhh" - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x5Library - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x7: - // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera - { - // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".aaaaaaaaa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ ".f.......f." - /* 7 */ ".efffffffe." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".f.......f." - /* 5 */ ".h.......h." - /* 6 */ ".h.......h." - /* 7 */ ".ehhhfhhhe." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffk" - /* 2 */ ".f..l.l..f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ ".f...n...f." - /* 7 */ "offfffffffo" - /* 8 */ "ppppppppppp" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "kfffffffffk" - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ "offfffffffo" - /* 7 */ "ppppppppppp" - /* 8 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "kfffffffffk" - /* 4 */ ".f.......f." - /* 5 */ "offfffffffo" - /* 6 */ "ppppppppppp" - /* 7 */ "..........." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "jjjjjjjjjjj" - /* 4 */ "fffffffffff" - /* 5 */ "ppppppppppp" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x7Butcher: - // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera - { - // Size: - 11, 9, 13, // SizeX = 11, SizeY = 9, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 4: 0\n" /* cobblestone */ - "d: 67: 0\n" /* stairs */ - "e: 67: 2\n" /* stairs */ - "f: 67: 1\n" /* stairs */ - "g: 43: 0\n" /* doubleslab */ - "h: 17: 0\n" /* tree */ - "i: 5: 0\n" /* wood */ - "j: 64: 7\n" /* wooddoorblock */ - "k: 53: 3\n" /* woodstairs */ - "l: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o:102: 0\n" /* glasspane */ - "p: 64:12\n" /* wooddoorblock */ - "q: 72: 0\n" /* woodplate */ - "r: 53: 7\n" /* woodstairs */ - "s: 50: 1\n" /* torch */ - "t: 50: 2\n" /* torch */ - "u: 53: 6\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "baaaaaaaaaa" - /* 8 */ "baaaaaaaaaa" - /* 9 */ "baaaaaaaaab" - /* 10 */ "aaaaaaaaaaa" - /* 11 */ "aaaaaaaaaba" - /* 12 */ "aaaaaaaaaba" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmcccmmmm" - /* 1 */ "mcccccccccm" - /* 2 */ "mcccccccccm" - /* 3 */ "mcccccccccm" - /* 4 */ "mcccccccccm" - /* 5 */ "mcccccccccm" - /* 6 */ "mcccccccccm" - /* 7 */ "mcccccccccm" - /* 8 */ "mmaaaaaaamm" - /* 9 */ "mmaaaaaaamm" - /* 10 */ "mmaaaaaaamm" - /* 11 */ "mmaaaaaaamm" - /* 12 */ "mmaaaaaaamm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....def...." - /* 1 */ ".ccccccccc." - /* 2 */ ".cggggcccc." - /* 3 */ ".cggggcccc." - /* 4 */ ".cggggcccc." - /* 5 */ ".cggggcccc." - /* 6 */ ".cggggcccc." - /* 7 */ ".ccccccccc." - /* 8 */ "..bbbbbbb.." - /* 9 */ "mmbbbbbbbmm" - /* 10 */ "mmbbbbbbbmm" - /* 11 */ "mmbbbbbbbmm" - /* 12 */ "mmbbbbbbbmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".hiiijiiih." - /* 2 */ ".i.g....ki." - /* 3 */ ".i.g....li." - /* 4 */ ".i.g....ni." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".hiiijiiih." - /* 8 */ "..l.....l.." - /* 9 */ "mml.....lmm" - /* 10 */ "mml.....lmm" - /* 11 */ "mml.....lmm" - /* 12 */ "mmlllllllmm" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".hooipiooh." - /* 2 */ ".o.......o." - /* 3 */ ".o......qo." - /* 4 */ ".i.......i." - /* 5 */ ".o.......o." - /* 6 */ ".o.......o." - /* 7 */ ".hooipiooh." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "nnnnnnnnnnn" - /* 1 */ "riiiiiiiiir" - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ ".is.....ti." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ "uiiiiiiiiiu" - /* 8 */ "kkkkkkkkkkk" - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "nnnnnnnnnnn" - /* 2 */ "riiiiiiiiir" - /* 3 */ ".i.......i." - /* 4 */ ".i.......i." - /* 5 */ ".i.......i." - /* 6 */ "uiiiiiiiiiu" - /* 7 */ "kkkkkkkkkkk" - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "nnnnnnnnnnn" - /* 3 */ "riiiiiiiiir" - /* 4 */ ".i.......i." - /* 5 */ "uiiiiiiiiiu" - /* 6 */ "kkkkkkkkkkk" - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "nnnnnnnnnnn" - /* 4 */ "iiiiiiiiiii" - /* 5 */ "kkkkkkkkkkk" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x7Butcher - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x7DoubleDoor: - // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera - { - // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 67: 3\n" /* stairs */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h: 64: 7\n" /* wooddoorblock */ - "i:102: 0\n" /* glasspane */ - "j: 64:12\n" /* wooddoorblock */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 7\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 17: 4\n" /* tree */ - "o: 17: 8\n" /* tree */ - "p: 50: 3\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 53: 6\n" /* woodstairs */ - "s: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmaaammmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".aaaaaaaaa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "....bed...." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".fggfhfggf." - /* 2 */ ".g.......g." - /* 3 */ ".g.......g." - /* 4 */ ".f.......f." - /* 5 */ ".g.......g." - /* 6 */ ".g.......g." - /* 7 */ ".fggfhfggf." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".fiifjfiif." - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ ".f.......f." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".fiifjfiif." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "kkkkkkkkkkk" - /* 1 */ "lfnnnnnnnfl" - /* 2 */ ".o..p.p..o." - /* 3 */ ".o.......o." - /* 4 */ ".o.......o." - /* 5 */ ".o.......o." - /* 6 */ ".o..q.q..o." - /* 7 */ "rfnnnnnnnfr" - /* 8 */ "sssssssssss" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "kkkkkkkkkkk" - /* 2 */ "lgggggggggl" - /* 3 */ ".g.......g." - /* 4 */ ".g.......g." - /* 5 */ ".g.......g." - /* 6 */ "rgggggggggr" - /* 7 */ "sssssssssss" - /* 8 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "kkkkkkkkkkk" - /* 3 */ "lgggggggggl" - /* 4 */ ".g.......g." - /* 5 */ "rgggggggggr" - /* 6 */ "sssssssssss" - /* 7 */ "..........." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "kkkkkkkkkkk" - /* 4 */ "ggggggggggg" - /* 5 */ "sssssssssss" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x7DoubleDoor - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseL13x14: - // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior - { - // Size: - 15, 9, 16, // SizeX = 15, SizeY = 9, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 15, 8, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 53: 7\n" /* woodstairs */ - "B: 53: 4\n" /* woodstairs */ - "C: 53: 5\n" /* woodstairs */ - "D: 53: 6\n" /* woodstairs */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 43: 0\n" /* doubleslab */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h: 64: 7\n" /* wooddoorblock */ - "i: 96: 8\n" /* trapdoor */ - "j: 61: 2\n" /* furnace */ - "k: 53: 3\n" /* woodstairs */ - "l: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 53: 0\n" /* woodstairs */ - "q: 47: 0\n" /* bookshelf */ - "r:102: 0\n" /* glasspane */ - "s: 64:12\n" /* wooddoorblock */ - "t: 72: 0\n" /* woodplate */ - "u: 17: 4\n" /* tree */ - "v: 17: 8\n" /* tree */ - "w: 50: 3\n" /* torch */ - "x: 50: 1\n" /* torch */ - "y: 50: 4\n" /* torch */ - "z: 50: 2\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmaaammmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmaaaaaam" - /* 9 */ "mmmmmmmmaaaaaam" - /* 10 */ "mmmmmmmmaaaaaam" - /* 11 */ "mmmmmmmmaaaaaam" - /* 12 */ "mmmmmmmmaaaaaam" - /* 13 */ "mmmmmmmmaaaaaam" - /* 14 */ "mmmmmmmmaaaaaam" - /* 15 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "......bcd......" - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aeeeeaaaaaaaa." - /* 3 */ ".aeeeeaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ "........aaaaaa." - /* 9 */ "mmmmmmm.aaaaaa." - /* 10 */ "mmmmmmm.aaaaaa." - /* 11 */ "mmmmmmm.aaaaaa." - /* 12 */ "mmmmmmm.aaaaaa." - /* 13 */ "mmmmmmm.aaaaaa." - /* 14 */ "mmmmmmm.aaaaaa." - /* 15 */ "mmmmmmm........" - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fggggfhfggggf." - /* 2 */ ".g...i.......g." - /* 3 */ ".gjeee......kg." - /* 4 */ ".f..........lg." - /* 5 */ ".g..........ng." - /* 6 */ ".g.olp..ol...g." - /* 7 */ ".fggggggfn...f." - /* 8 */ "........g....g." - /* 9 */ "mmmmmmm.gk...g." - /* 10 */ "mmmmmmm.gl..kg." - /* 11 */ "mmmmmmm.gn..lg." - /* 12 */ "mmmmmmm.g...ng." - /* 13 */ "mmmmmmm.gq..qg." - /* 14 */ "mmmmmmm.fggggf." - /* 15 */ "mmmmmmm........" - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fgrrgfsfgrrgf." - /* 2 */ ".g...........g." - /* 3 */ ".g...........r." - /* 4 */ ".f..........tr." - /* 5 */ ".g...........r." - /* 6 */ ".g..t....t...g." - /* 7 */ ".fgrrrrgf....f." - /* 8 */ "........g....g." - /* 9 */ "mmmmmmm.r....r." - /* 10 */ "mmmmmmm.rt...r." - /* 11 */ "mmmmmmm.r...tr." - /* 12 */ "mmmmmmm.r....r." - /* 13 */ "mmmmmmm.gq..qg." - /* 14 */ "mmmmmmm.fgrrgf." - /* 15 */ "mmmmmmm........" - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fuuuuuuuuuuuf." - /* 2 */ ".v....w.w....v." - /* 3 */ ".v...........v." - /* 4 */ ".vx..........v." - /* 5 */ ".v...........v." - /* 6 */ ".v......y....v." - /* 7 */ ".fuuuuuufx..zv." - /* 8 */ "........v....v." - /* 9 */ "mmmmmmm.v....v." - /* 10 */ "mmmmmmm.v....v." - /* 11 */ "mmmmmmm.v....v." - /* 12 */ "mmmmmmm.v....v." - /* 13 */ "mmmmmmm.v.yy.v." - /* 14 */ "mmmmmmm.fuuuuf." - /* 15 */ "mmmmmmm........" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "nnnnnnnnnnnnnno" - /* 1 */ "pgggggggggggggo" - /* 2 */ "pgAAAAAAAAAABgo" - /* 3 */ "pgC.........Bgo" - /* 4 */ "pgC.........Bgo" - /* 5 */ "pgC.........Bgo" - /* 6 */ "pgCDDDDDDD..Bgo" - /* 7 */ "pggggggggC..Bgo" - /* 8 */ "pkkkkkkpgC..Bgo" - /* 9 */ "mmmmmmmpgC..Bgo" - /* 10 */ "mmmmmmmpgC..Bgo" - /* 11 */ "mmmmmmmpgC..Bgo" - /* 12 */ "mmmmmmmpgC..Bgo" - /* 13 */ "mmmmmmmpgCDDBgo" - /* 14 */ "mmmmmmmpggggggo" - /* 15 */ "mmmmmmmpkkkkkkk" - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".pnnnnnnnnnnno." - /* 2 */ ".pgggggggggggo." - /* 3 */ ".pgggggggggggo." - /* 4 */ ".pgggggggggggo." - /* 5 */ ".pgggggggggggo." - /* 6 */ ".pgggggggggggo." - /* 7 */ ".pkkkkkkkggggo." - /* 8 */ "........pggggo." - /* 9 */ "mmmmmmm.pggggo." - /* 10 */ "mmmmmmm.pggggo." - /* 11 */ "mmmmmmm.pggggo." - /* 12 */ "mmmmmmm.pggggo." - /* 13 */ "mmmmmmm.pggggo." - /* 14 */ "mmmmmmm.kkkkko." - /* 15 */ "mmmmmmm........" - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..nnnnnnnnnnn.." - /* 3 */ "..pgggggggggo.." - /* 4 */ "..pgggggggggo.." - /* 5 */ "..pgggggggggo.." - /* 6 */ "..kkkkkkkkggo.." - /* 7 */ ".........pggo.." - /* 8 */ ".........pggo.." - /* 9 */ "mmmmmmm..pggo.." - /* 10 */ "mmmmmmm..pggo.." - /* 11 */ "mmmmmmm..pggo.." - /* 12 */ "mmmmmmm..pggo.." - /* 13 */ "mmmmmmm..kkko.." - /* 14 */ "mmmmmmm........" - /* 15 */ "mmmmmmm........" - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...pnnnnnnno..." - /* 4 */ "...pgggggggo..." - /* 5 */ "...pkkkkkkpo..." - /* 6 */ "..........po..." - /* 7 */ "..........po..." - /* 8 */ "..........po..." - /* 9 */ "mmmmmmm...po..." - /* 10 */ "mmmmmmm...po..." - /* 11 */ "mmmmmmm...po..." - /* 12 */ "mmmmmmm...pk..." - /* 13 */ "mmmmmmm........" - /* 14 */ "mmmmmmm........" - /* 15 */ "mmmmmmm........", - - // Connectors: - "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouseL13x14 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseL14x14: - // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera - { - // Size: - 16, 8, 16, // SizeX = 16, SizeY = 8, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, 1, 0, // MinX, MinY, MinZ - 16, 7, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 5: 0\n" /* wood */ - "f: 67: 3\n" /* stairs */ - "g: 17: 0\n" /* tree */ - "h: 64: 7\n" /* wooddoorblock */ - "i: 64: 5\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 1\n" /* woodstairs */ - "o: 53: 7\n" /* woodstairs */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */ - "r: 53: 0\n" /* woodstairs */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */ - "u: 50: 3\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 50: 4\n" /* torch */ - "x: 50: 1\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaaam" - /* 8 */ "mmmmmaaaaaaaaaam" - /* 9 */ "mmmmmmmmaaaaaaam" - /* 10 */ "mmmmmmmmaaaaaaam" - /* 11 */ "mmmmmmmmaaaaaaam" - /* 12 */ "mmmmmmmmaaaaaaam" - /* 13 */ "mmmmmmmmaaaaaaam" - /* 14 */ "mmmmmmmmaaaaaaam" - /* 15 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "........bcd....." - /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".aeeeeeeeeeeeea." - /* 3 */ ".aeeeeeeeeeeeea." - /* 4 */ ".aeeeeeeeeeeeea." - /* 5 */ ".aeeeeeeeeeeeea." - /* 6 */ ".aeeeeeeeeeeeea." - /* 7 */ ".aaaaaaaaeeeeea." - /* 8 */ ".....bfdaeeeeea." - /* 9 */ "mmmm....aeeeeea." - /* 10 */ "mmmmmmm.aeeeeea." - /* 11 */ "mmmmmmm.aeeeeea." - /* 12 */ "mmmmmmm.aeeeeea." - /* 13 */ "mmmmmmm.aeeeeea." - /* 14 */ "mmmmmmm.aaaaaaa." - /* 15 */ "mmmmmmm........." - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".geeeeeeghgeeeg." - /* 2 */ ".e............e." - /* 3 */ ".e............e." - /* 4 */ ".e............e." - /* 5 */ ".e............e." - /* 6 */ ".e............e." - /* 7 */ ".geeeeieg.....e." - /* 8 */ "........e.....e." - /* 9 */ "mmmm....e.....e." - /* 10 */ "mmmmmmm.e.....e." - /* 11 */ "mmmmmmm.e.....e." - /* 12 */ "mmmmmmm.e.....e." - /* 13 */ "mmmmmmm.e.....e." - /* 14 */ "mmmmmmm.geeeeeg." - /* 15 */ "mmmmmmm........." - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".gejjejjgkgjjeg." - /* 2 */ ".j............e." - /* 3 */ ".j............j." - /* 4 */ ".j............j." - /* 5 */ ".j............e." - /* 6 */ ".j............j." - /* 7 */ ".gejjekeg.....j." - /* 8 */ "........e.....e." - /* 9 */ "mmmm....j.....j." - /* 10 */ "mmmmmmm.j.....j." - /* 11 */ "mmmmmmm.e.....e." - /* 12 */ "mmmmmmm.j.....j." - /* 13 */ "mmmmmmm.j.....j." - /* 14 */ "mmmmmmm.gjjjjjg." - /* 15 */ "mmmmmmm........." - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "llllllllllllllln" - /* 1 */ "ogeeeeeegegeeegn" - /* 2 */ ".e............en" - /* 3 */ ".e............en" - /* 4 */ ".e............en" - /* 5 */ ".e............en" - /* 6 */ ".e............en" - /* 7 */ "pgeeeeeeg.....en" - /* 8 */ "qqqqqqqre.....en" - /* 9 */ "mmmm...re.....en" - /* 10 */ "mmmmmmmre.....en" - /* 11 */ "mmmmmmmre.....en" - /* 12 */ "mmmmmmmre.....en" - /* 13 */ "mmmmmmmre.....en" - /* 14 */ "mmmmmmmrgeeeeegn" - /* 15 */ "mmmmmmmrs.....tn" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "lllllllllllllll." - /* 2 */ "oeeeeeeeeeeeeen." - /* 3 */ ".e.........u.en." - /* 4 */ ".e..........ven." - /* 5 */ ".e......w....en." - /* 6 */ "peeeeeeeee...en." - /* 7 */ "qqqqqqqqrex..en." - /* 8 */ "........re...en." - /* 9 */ "mmmm....re...en." - /* 10 */ "mmmmmmm.re...en." - /* 11 */ "mmmmmmm.re...en." - /* 12 */ "mmmmmmm.re...en." - /* 13 */ "mmmmmmm.re...en." - /* 14 */ "mmmmmmm.reeeeen." - /* 15 */ "mmmmmmm.rs...tn." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "llllllllllllln.." - /* 3 */ "oeeeeeeeeeeeen.." - /* 4 */ ".ex.........en.." - /* 5 */ "peeeeeeeeee.en.." - /* 6 */ "qqqqqqqqqre.en.." - /* 7 */ ".........re.en.." - /* 8 */ ".........re.en.." - /* 9 */ "mmmm.....re.en.." - /* 10 */ "mmmmmmm..re.en.." - /* 11 */ "mmmmmmm..re.en.." - /* 12 */ "mmmmmmm..re.en.." - /* 13 */ "mmmmmmm..rewen.." - /* 14 */ "mmmmmmm..reeen.." - /* 15 */ "mmmmmmm..rs.tn.." - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "lllllllllllll..." - /* 4 */ "eeeeeeeeeeeen..." - /* 5 */ "qqqqqqqqqqren..." - /* 6 */ "..........ren..." - /* 7 */ "..........ren..." - /* 8 */ "..........ren..." - /* 9 */ "mmmm......ren..." - /* 10 */ "mmmmmmm...ren..." - /* 11 */ "mmmmmmm...ren..." - /* 12 */ "mmmmmmm...ren..." - /* 13 */ "mmmmmmm...ren..." - /* 14 */ "mmmmmmm...ren..." - /* 15 */ "mmmmmmm...ren...", - - // Connectors: - "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouseL14x14 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseL9x9: - // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft - { - // Size: - 11, 7, 11, // SizeX = 11, SizeY = 7, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 6, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 50: 1\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 53: 3\n" /* woodstairs */ - "t: 53: 0\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmaaaaam" - /* 7 */ "mmmmmaaaaam" - /* 8 */ "mmmmmaaaaam" - /* 9 */ "mmmmmaaaaam" - /* 10 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".....aaaaa." - /* 7 */ "mmmm.aaaaa." - /* 8 */ "mmmm.aaaaa." - /* 9 */ "mmmm.aaaaa." - /* 10 */ "mmmm......." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".efffe...f." - /* 6 */ ".....f...f." - /* 7 */ "mmmm.f...f." - /* 8 */ "mmmm.f...f." - /* 9 */ "mmmm.efffe." - /* 10 */ "mmmm......." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".ehhhe...f." - /* 6 */ ".....h...h." - /* 7 */ "mmmm.h...h." - /* 8 */ "mmmm.h...h." - /* 9 */ "mmmm.ehhhe." - /* 10 */ "mmmm......." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffl" - /* 2 */ ".f..n.n..fl" - /* 3 */ ".f.......fl" - /* 4 */ ".f...o...fl" - /* 5 */ "pfffffq.rfl" - /* 6 */ "sssssf...fl" - /* 7 */ "mmmmtf...fl" - /* 8 */ "mmmmtf...fl" - /* 9 */ "mmmmtfffffl" - /* 10 */ "mmmmtu...vl" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjl." - /* 2 */ "kffffffffl." - /* 3 */ ".f......fl." - /* 4 */ "pffffff.fl." - /* 5 */ "ssssssf.fl." - /* 6 */ ".....tf.fl." - /* 7 */ "mmmm.tf.fl." - /* 8 */ "mmmm.tf.fl." - /* 9 */ "mmmm.tfffl." - /* 10 */ "mmmm.tu.vl." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjj.." - /* 3 */ "ffffffffl.." - /* 4 */ "sssssstfl.." - /* 5 */ "......tfl.." - /* 6 */ "......tfl.." - /* 7 */ "mmmm..tfl.." - /* 8 */ "mmmm..tfl.." - /* 9 */ "mmmm..tfl.." - /* 10 */ "mmmm..tfl..", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouseL9x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseU13x9: - // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft - { - // Size: - 15, 7, 11, // SizeX = 15, SizeY = 7, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 15, 6, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 0\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p: 50: 2\n" /* torch */ - "q: 50: 1\n" /* torch */ - "r: 53: 3\n" /* woodstairs */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmaaammmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaammmaaaaam" - /* 7 */ "maaaaammmaaaaam" - /* 8 */ "maaaaammmaaaaam" - /* 9 */ "maaaaammmaaaaam" - /* 10 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "......bcd......" - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaa." - /* 6 */ ".aaaaa...aaaaa." - /* 7 */ ".aaaaa...aaaaa." - /* 8 */ ".aaaaa...aaaaa." - /* 9 */ ".aaaaa...aaaaa." - /* 10 */ "..............." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".efffffgfffffe." - /* 2 */ ".f...........f." - /* 3 */ ".f...........f." - /* 4 */ ".f...........f." - /* 5 */ ".f...efffe...f." - /* 6 */ ".f...f...f...f." - /* 7 */ ".f...f...f...f." - /* 8 */ ".f...f...f...f." - /* 9 */ ".efffe...efffe." - /* 10 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".ehhhhfifhhhhe." - /* 2 */ ".h...........h." - /* 3 */ ".h...........h." - /* 4 */ ".h...........h." - /* 5 */ ".f...ehhhe...f." - /* 6 */ ".h...h...h...h." - /* 7 */ ".h...h...h...h." - /* 8 */ ".h...h...h...h." - /* 9 */ ".ehhhe...ehhhe." - /* 10 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "jjjjjjjjjjjjjjj" - /* 1 */ "kfffffffffffffl" - /* 2 */ "kf....n.n....fl" - /* 3 */ "kf...........fl" - /* 4 */ "kf...o...o...fl" - /* 5 */ "kf..pfffffq..fl" - /* 6 */ "kf...frrrf...fl" - /* 7 */ "kf...fl.kf...fl" - /* 8 */ "kf...fl.kf...fl" - /* 9 */ "kfffffl.kfffffl" - /* 10 */ "ks...tl.ks...tl" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".jjjjjjjjjjjjl." - /* 2 */ ".kfffffffffffl." - /* 3 */ ".kfffffffffffl." - /* 4 */ ".kfffffffffffl." - /* 5 */ ".kffflrrrrfffl." - /* 6 */ ".kfffl...kfffl." - /* 7 */ ".kfffl...kfffl." - /* 8 */ ".kfffl...kfffl." - /* 9 */ ".kfffl...kfffl." - /* 10 */ ".ks.tl...ks.tl." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..kjjjjjjjjjj.." - /* 3 */ "..kfffffffffl.." - /* 4 */ "..kflrrrrrkfl.." - /* 5 */ "..kfl.....kfl.." - /* 6 */ "..kfl.....kfl.." - /* 7 */ "..kfl.....kfl.." - /* 8 */ "..kfl.....kfl.." - /* 9 */ "..kfl.....kfl.." - /* 10 */ "..kfl.....kfl..", - - // Connectors: - "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouseU13x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenMill5x5: - // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera - { - // Size: - 9, 17, 13, // SizeX = 9, SizeY = 17, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 8, 16, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 67: 3\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 54: 4\n" /* chest */ - "h:154: 4\n" /* hopper */ - "i: 64: 4\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 85: 0\n" /* fence */ - "l: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 35: 0\n" /* wool */ - "p: 17: 4\n" /* tree */ - "q: 17: 8\n" /* tree */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmmmm" - /* 1 */ "mmmmmmmmm" - /* 2 */ "mmmmmmmmm" - /* 3 */ "mmmmmmmmm" - /* 4 */ "maaaaammm" - /* 5 */ "maaaaaamm" - /* 6 */ "maaaaaamm" - /* 7 */ "maaaaaamm" - /* 8 */ "maaaaammm" - /* 9 */ "mmmmmmmmm" - /* 10 */ "mmmmmmmmm" - /* 11 */ "mmmmmmmmm" - /* 12 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".aaaaa..." - /* 5 */ ".aaaaab.." - /* 6 */ ".aaaaac.." - /* 7 */ ".aaaaad.." - /* 8 */ ".aaaaa..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..." - /* 6 */ ".fgh.i..." - /* 7 */ ".f...f..." - /* 8 */ ".efffe..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".ejjje..." - /* 5 */ ".j...f..." - /* 6 */ ".j.k.l..." - /* 7 */ ".j...f..." - /* 8 */ ".ejjje..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f..nf..." - /* 6 */ ".f.k.f..." - /* 7 */ ".f..nf..k" - /* 8 */ ".efffe..o" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".epppe..." - /* 5 */ ".q...q..." - /* 6 */ ".q.k.q..." - /* 7 */ ".q...q..k" - /* 8 */ ".epppe..o" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..." - /* 6 */ ".f.k.f..k" - /* 7 */ ".f...f..o" - /* 8 */ ".efffe..o" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 7 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".ejjje..." - /* 5 */ ".j...j..." - /* 6 */ ".j.k.j..k" - /* 7 */ ".j...j..o" - /* 8 */ ".ejjje..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 8 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.o" - /* 1 */ "mmmmmmm.o" - /* 2 */ "mmmmmmm.o" - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..k" - /* 6 */ ".f.k.f..o" - /* 7 */ ".f...f..o" - /* 8 */ ".efffe..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 9 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.k" - /* 1 */ "mmmmmmm.k" - /* 2 */ "mmmmmmm.o" - /* 3 */ "........o" - /* 4 */ ".epppe..o" - /* 5 */ ".q...q..k" - /* 6 */ ".q.k.q..o" - /* 7 */ ".q...q..k" - /* 8 */ ".epppe..k" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 10 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.k" - /* 3 */ "rrrrrrr.k" - /* 4 */ "sfffffs.o" - /* 5 */ ".f...f..o" - /* 6 */ ".f.kppppp" - /* 7 */ ".f...f..o" - /* 8 */ "tffffft.o" - /* 9 */ "uuuuuuu.k" - /* 10 */ "mmmmmmm.k" - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 11 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "rrrrrrr.k" - /* 5 */ "sfffffs.k" - /* 6 */ ".f...f..o" - /* 7 */ "tffffft.k" - /* 8 */ "uuuuuuu.o" - /* 9 */ "........o" - /* 10 */ "mmmmmmm.o" - /* 11 */ "mmmmmmm.k" - /* 12 */ "mmmmmmm.k" - - // Level 12 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........." - /* 5 */ "rrrrrrr.o" - /* 6 */ "fffffff.o" - /* 7 */ "uuuuuuu.k" - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.o" - /* 11 */ "mmmmmmm.o" - /* 12 */ "mmmmmmm.o" - - // Level 13 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........." - /* 5 */ "........o" - /* 6 */ "........k" - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 14 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........o" - /* 6 */ "........k" - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 15 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........k" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 16 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........k" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm..", - - // Connectors: - "-1: 8, 1, 6: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenMill5x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenStables: - // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera - { - // Size: - 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 15, 8, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 3: 0\n" /* dirt */ - "f: 17: 0\n" /* tree */ - "g:107: 0\n" /* fencegate */ - "h:107: 4\n" /* fencegate */ - "i: 5: 0\n" /* wood */ - "j:107: 6\n" /* fencegate */ - "k: 85: 0\n" /* fence */ - "l:170: 0\n" /* haybale */ - "m: 19: 0\n" /* sponge */ - "n:170: 4\n" /* haybale */ - "o:170: 8\n" /* haybale */ - "p: 50: 1\n" /* torch */ - "q: 50: 2\n" /* torch */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "maaaaaaaaaaaaam" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ ".bcccccccccccd." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aeeeeeeeeeeea." - /* 3 */ ".aeeeeeeeeeeea." - /* 4 */ ".aeeeeeeeeeeea." - /* 5 */ ".aeeeeeeeeeeea." - /* 6 */ ".aeeeeeeeeeeea." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ "..............." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fghgighgigjgf." - /* 2 */ ".k...k...k...k." - /* 3 */ ".k...k...k...k." - /* 4 */ ".k...k...k...k." - /* 5 */ ".k...k...k...k." - /* 6 */ ".kl..k..nko..k." - /* 7 */ ".fkkkikkkikkkf." - /* 8 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".f...i...i...f." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".f...i...i...f." - /* 8 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fp.qip.qip.qf." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".f...i...i...f." - /* 8 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "rrrrrrrrrrrrrrr" - /* 1 */ "siiiiiiiiiiiiis" - /* 2 */ ".i...........i." - /* 3 */ ".i...........i." - /* 4 */ ".i...........i." - /* 5 */ ".i...........i." - /* 6 */ ".i...........i." - /* 7 */ "tiiiiiiiiiiiiit" - /* 8 */ "uuuuuuuuuuuuuuu" - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "rrrrrrrrrrrrrrr" - /* 2 */ "siiiiiiiiiiiiis" - /* 3 */ ".i...........i." - /* 4 */ ".i...........i." - /* 5 */ ".i...........i." - /* 6 */ "tiiiiiiiiiiiiit" - /* 7 */ "uuuuuuuuuuuuuuu" - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "rrrrrrrrrrrrrrr" - /* 3 */ "siiiiiiiiiiiiis" - /* 4 */ ".i...........i." - /* 5 */ "tiiiiiiiiiiiiit" - /* 6 */ "uuuuuuuuuuuuuuu" - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "rrrrrrrrrrrrrrr" - /* 4 */ "iiiiiiiiiiiiiii" - /* 5 */ "uuuuuuuuuuuuuuu" - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", - - // Connectors: - "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenStables -}; // g_PlainsVillagePrefabs - - - - - - -const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // CobbleWell4x4: - // The data has been exported from the gallery Plains, area index 1, ID 5, created by Aloe_vera - { - // Size: - 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 3, 12, 3, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123 */ - /* 0 */ "aaaa" - /* 1 */ "aaaa" - /* 2 */ "aaaa" - /* 3 */ "aaaa" - - // Level 1 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 2 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 3 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 4 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 5 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 6 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 7 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 8 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 9 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "b..b" - /* 2 */ "b..b" - /* 3 */ "bbbb" - - // Level 10 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 11 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 12 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bbbb" - /* 2 */ "bbbb" - /* 3 */ "bbbb", - - // Connectors: - "2: 1, 9, 3: 3\n" /* Type 2, direction Z+ */ - "2: 2, 9, 0: 2\n" /* Type 2, direction Z- */ - "2: 0, 9, 1: 4\n" /* Type 2, direction X- */ - "2: 3, 9, 2: 5\n" /* Type 2, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // CobbleWell4x4 - - - - //////////////////////////////////////////////////////////////////////////////// - // MineEntrance: - // The data has been exported from the gallery Plains, area index 138, ID 446, created by STR_Warrior - { - // Size: - 7, 38, 7, // SizeX = 7, SizeY = 38, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 37, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 77: 2\n" /* stonebutton */ - "c: 66: 6\n" /* tracks */ - "d: 27: 1\n" /* poweredrail */ - "e: 66: 5\n" /* tracks */ - "f: 66: 9\n" /* tracks */ - "g: 66: 2\n" /* tracks */ - "h: 50: 4\n" /* torch */ - "i: 66: 4\n" /* tracks */ - "j: 66: 8\n" /* tracks */ - "k: 66: 3\n" /* tracks */ - "l: 66: 7\n" /* tracks */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 4: 0\n" /* cobblestone */ - "p: 2: 0\n" /* grass */ - "q: 13: 0\n" /* gravel */ - "r: 53: 2\n" /* woodstairs */ - "s: 77: 1\n" /* stonebutton */ - "t: 27: 0\n" /* poweredrail */ - "u: 53: 7\n" /* woodstairs */ - "v: 53: 6\n" /* woodstairs */ - "w: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "maaaaam" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mm.abam" - /* 2 */ "mmcddam" - /* 3 */ "mae..am" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mm.a.mm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "mm.h.mm" - /* 1 */ "mm.a.mm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 15 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 16 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 17 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 18 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 19 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 20 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 21 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 22 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 23 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 24 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 25 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 26 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 27 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 28 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 29 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 30 - /* z\x* 0123456 */ - /* 0 */ "mmooomm" - /* 1 */ "mmmammm" - /* 2 */ "om...mo" - /* 3 */ "oa..aao" - /* 4 */ "omfgamo" - /* 5 */ "mmmammm" - /* 6 */ "mmooomm" - - // Level 31 - /* z\x* 0123456 */ - /* 0 */ "ppqqqpp" - /* 1 */ "paaaaap" - /* 2 */ "qa.aaaq" - /* 3 */ "qa..iaq" - /* 4 */ "qa..jaq" - /* 5 */ "paaaaap" - /* 6 */ "ppqqqpp" - - // Level 32 - /* z\x* 0123456 */ - /* 0 */ "...r..." - /* 1 */ ".astba." - /* 2 */ "...fl.." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".a...a." - /* 6 */ "......." - - // Level 33 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".a...a." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".a...a." - /* 6 */ "......." - - // Level 34 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".a...a." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".a...a." - /* 6 */ "......." - - // Level 35 - /* z\x* 0123456 */ - /* 0 */ "rrrrrrr" - /* 1 */ "uaaaaau" - /* 2 */ ".a...a." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ "vaaaaav" - /* 6 */ "wwwwwww" - - // Level 36 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "rrrrrrr" - /* 2 */ "uaaaaau" - /* 3 */ ".aaaaa." - /* 4 */ "vaaaaav" - /* 5 */ "wwwwwww" - /* 6 */ "......." - - // Level 37 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "rrrrrrr" - /* 3 */ "aaaaaaa" - /* 4 */ "wwwwwww" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "2: 6, 32, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 32, 6: 3\n" /* Type 2, direction Z+ */ - "2: 0, 32, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 32, 0: 2\n" /* Type 2, direction Z- */ - "3: 3, 1, 0: 2\n" /* Type 3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MineEntrance - - - - //////////////////////////////////////////////////////////////////////////////// - // RoofedWell: - // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior - { - // Size: - 7, 15, 7, // SizeX = 7, SizeY = 15, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 14, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 3: 0\n" /* dirt */ - "e: 2: 0\n" /* grass */ - "f: 13: 0\n" /* gravel */ - "g:118: 3\n" /* cauldronblock */ - "h: 85: 0\n" /* fence */ - "i: 53: 2\n" /* woodstairs */ - "j: 53: 7\n" /* woodstairs */ - "k: 5: 0\n" /* wood */ - "l: 53: 4\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 5\n" /* woodstairs */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "eefffee" - /* 1 */ "ebbbbbe" - /* 2 */ "fbcccbf" - /* 3 */ "fbcccbf" - /* 4 */ "fbcccbf" - /* 5 */ "ebbbbbe" - /* 6 */ "eefffee" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bbbbb." - /* 2 */ ".b...b." - /* 3 */ ".b.g.b." - /* 4 */ ".b...b." - /* 5 */ ".bbbbb." - /* 6 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "iiiiiii" - /* 1 */ "jkjjjkj" - /* 2 */ ".l...n." - /* 3 */ ".l.h.n." - /* 4 */ ".l...n." - /* 5 */ "okoooko" - /* 6 */ "ppppppp" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "iiiiiii" - /* 2 */ "jkjjjkj" - /* 3 */ ".k.h.k." - /* 4 */ "okoooko" - /* 5 */ "ppppppp" - /* 6 */ "......." - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "iiiiiii" - /* 3 */ "kkkkkkk" - /* 4 */ "ppppppp" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */ - "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // RoofedWell -}; - - - - - -// The prefab counts: - -const size_t g_PlainsVillagePrefabsCount = ARRAYCOUNT(g_PlainsVillagePrefabs); - -const size_t g_PlainsVillageStartingPrefabsCount = ARRAYCOUNT(g_PlainsVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.h b/src/Generating/Prefabs/PlainsVillagePrefabs.h deleted file mode 100644 index 087783b1e..000000000 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// PlainsVillagePrefabs.h - -// Declares the prefabs in the group PlainsVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_PlainsVillagePrefabs[]; -extern const cPrefab::sDef g_PlainsVillageStartingPrefabs[]; -extern const size_t g_PlainsVillagePrefabsCount; -extern const size_t g_PlainsVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp deleted file mode 100644 index 3328ee210..000000000 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp +++ /dev/null @@ -1,1669 +0,0 @@ - -// SandFlatRoofVillagePrefabs.cpp - -// Defines the prefabs in the group SandFlatRoofVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "SandFlatRoofVillagePrefabs.h" - - - - - -const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // Forge: - // The data has been exported from the gallery Desert, area index 32, ID 173, created by Aloe_vera - { - // Size: - 12, 6, 10, // SizeX = 12, SizeY = 6, SizeZ = 10 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 5, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e:128: 3\n" /* sandstonestairs */ - "f:171:15\n" /* carpet */ - "g: 64: 6\n" /* wooddoorblock */ - "h:171: 0\n" /* carpet */ - "i:171:14\n" /* carpet */ - "j: 61: 2\n" /* furnace */ - "k: 10: 0\n" /* lava */ - "l: 54: 2\n" /* chest */ - "m: 19: 0\n" /* sponge */ - "n: 24: 2\n" /* sandstone */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 1\n" /* torch */ - "q:101: 0\n" /* ironbars */ - "r:128: 4\n" /* sandstonestairs */ - "s:128: 6\n" /* sandstonestairs */ - "t:128: 5\n" /* sandstonestairs */ - "u:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "aaaaaaammmmm" - /* 1 */ "aaaaaaaaaaam" - /* 2 */ "aaaaaaaaaaam" - /* 3 */ "aaaaaaaaaaam" - /* 4 */ "aaaaaaaaaaam" - /* 5 */ "aaaaaaaaaaam" - /* 6 */ "maaaaaaaaaam" - /* 7 */ "maaaaaaaaaam" - /* 8 */ "maaaaaaaaaam" - /* 9 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "bcccccd....." - /* 1 */ "baaaaaaaaaa." - /* 2 */ "baaaaaaaaaa." - /* 3 */ "baaaaaaaaaa." - /* 4 */ "baaaaaaaaaa." - /* 5 */ "eaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaa." - /* 7 */ ".aaaaaaaaaa." - /* 8 */ ".aaaaaaaaaa." - /* 9 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".a....aaaaa." - /* 2 */ "......afffa." - /* 3 */ "......ghfha." - /* 4 */ "......aiiia." - /* 5 */ ".a....ahfha." - /* 6 */ ".ajaajafffa." - /* 7 */ ".aakkaal..a." - /* 8 */ ".aaaaaaaaaa." - /* 9 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".n....nn.nn." - /* 2 */ "......n...n." - /* 3 */ "......o...n." - /* 4 */ "......n....." - /* 5 */ ".n....n...n." - /* 6 */ ".n....n...n." - /* 7 */ ".n....n...n." - /* 8 */ ".nnn.nnn.nn." - /* 9 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".a....aaaaa." - /* 2 */ "......a...a." - /* 3 */ "......a...a." - /* 4 */ "......ap..a." - /* 5 */ ".a....a...a." - /* 6 */ ".aqqqqa...a." - /* 7 */ ".a....a...a." - /* 8 */ ".aaaaaaaaaa." - /* 9 */ "............" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "rsssssssssss" - /* 1 */ "raaaaaaaaaat" - /* 2 */ "raaaaaaaaaat" - /* 3 */ "raaaaaaaaaat" - /* 4 */ "raaaaaaaaaat" - /* 5 */ "raaaaaaaaaat" - /* 6 */ "raaaaaaaaaat" - /* 7 */ "raaaaaaaaaat" - /* 8 */ "raaaaaaaaaat" - /* 9 */ "uuuuuuuuuuut", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Forge - - - - //////////////////////////////////////////////////////////////////////////////// - // House11x7: - // The data has been exported from the gallery Desert, area index 31, ID 172, created by Aloe_vera - { - // Size: - 13, 6, 9, // SizeX = 13, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171: 0\n" /* carpet */ - "g:171:15\n" /* carpet */ - "h:171:14\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 6\n" /* sandstonestairs */ - "r:128: 5\n" /* sandstonestairs */ - "s:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmaaammmmmmmm" - /* 1 */ "maaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "..bcd........" - /* 1 */ ".aaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".aaeaaaaaaaa." - /* 2 */ ".affgggggffa." - /* 3 */ ".afghhhhhgfa." - /* 4 */ ".afghfffhgfa." - /* 5 */ ".afghhhhhgfa." - /* 6 */ ".affgggggffa." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".iiji.iii.ii." - /* 2 */ ".i.........i." - /* 3 */ ".i.........i." - /* 4 */ "............." - /* 5 */ ".i.........i." - /* 6 */ ".i.........i." - /* 7 */ ".ii.ii.ii.ii." - /* 8 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".aaaaaaaaaaa." - /* 2 */ ".a..k..k...a." - /* 3 */ ".a.........a." - /* 4 */ ".al.......na." - /* 5 */ ".a.........a." - /* 6 */ ".a....o....a." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "pqqqqqqqqqqqq" - /* 1 */ "paaaaaaaaaaar" - /* 2 */ "paaaaaaaaaaar" - /* 3 */ "paaaaaaaaaaar" - /* 4 */ "paaaaaaaaaaar" - /* 5 */ "paaaaaaaaaaar" - /* 6 */ "paaaaaaaaaaar" - /* 7 */ "paaaaaaaaaaar" - /* 8 */ "ssssssssssssr", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House11x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House5x4: - // The data has been exported from the gallery Desert, area index 25, ID 166, created by Aloe_vera - { - // Size: - 7, 6, 6, // SizeX = 7, SizeY = 6, SizeZ = 6 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171: 0\n" /* carpet */ - "g:171:14\n" /* carpet */ - "h: 24: 2\n" /* sandstone */ - "i: 64:12\n" /* wooddoorblock */ - "j: 50: 3\n" /* torch */ - "k:128: 4\n" /* sandstonestairs */ - "l:128: 6\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 5\n" /* sandstonestairs */ - "o:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaeaa." - /* 2 */ ".afgfa." - /* 3 */ ".afgfa." - /* 4 */ ".aaaaa." - /* 5 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".hhihh." - /* 2 */ ".h...h." - /* 3 */ ".h...h." - /* 4 */ ".hh.hh." - /* 5 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaaaa." - /* 2 */ ".aj.ja." - /* 3 */ ".a...a." - /* 4 */ ".aaaaa." - /* 5 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "kllllln" - /* 1 */ "kaaaaan" - /* 2 */ "kaaaaan" - /* 3 */ "kaaaaan" - /* 4 */ "kaaaaan" - /* 5 */ "oooooon", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House5x4 - - - - //////////////////////////////////////////////////////////////////////////////// - // House5x5: - // The data has been exported from the gallery Desert, area index 26, ID 167, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171: 0\n" /* carpet */ - "g:171:15\n" /* carpet */ - "h:171:14\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l:128: 4\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaeaa." - /* 2 */ ".afffa." - /* 3 */ ".aghga." - /* 4 */ ".afffa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".iijii." - /* 2 */ ".i...i." - /* 3 */ "......." - /* 4 */ ".i...i." - /* 5 */ ".ii.ii." - /* 6 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaaaa." - /* 2 */ ".ak.ka." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "lnnnnno" - /* 1 */ "laaaaao" - /* 2 */ "laaaaao" - /* 3 */ "laaaaao" - /* 4 */ "laaaaao" - /* 5 */ "laaaaao" - /* 6 */ "ppppppo", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House5x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // House7x5: - // The data has been exported from the gallery Desert, area index 27, ID 168, created by Aloe_vera - { - // Size: - 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171:14\n" /* carpet */ - "g:171: 0\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l:128: 4\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmaaammmm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "..bcd...." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".aaeaaaa." - /* 2 */ ".afffffa." - /* 3 */ ".aghhhga." - /* 4 */ ".afffffa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".iiji.ii." - /* 2 */ ".i.....i." - /* 3 */ "........." - /* 4 */ ".i.....i." - /* 5 */ ".iii.iii." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".aaaaaaa." - /* 2 */ ".ak.k..a." - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "lnnnnnnnn" - /* 1 */ "laaaaaaao" - /* 2 */ "laaaaaaao" - /* 3 */ "laaaaaaao" - /* 4 */ "laaaaaaao" - /* 5 */ "laaaaaaao" - /* 6 */ "ppppppppo", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House7x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // House8x5: - // The data has been exported from the gallery Desert, area index 28, ID 169, created by Aloe_vera - { - // Size: - 10, 6, 7, // SizeX = 10, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 10, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171: 0\n" /* carpet */ - "g:171:14\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l:128: 4\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mmaaammmmm" - /* 1 */ "maaaaaaaam" - /* 2 */ "maaaaaaaam" - /* 3 */ "maaaaaaaam" - /* 4 */ "maaaaaaaam" - /* 5 */ "maaaaaaaam" - /* 6 */ "mmmmmmmmmm" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..bcd....." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".aaaaaaaa." - /* 3 */ ".aaaaaaaa." - /* 4 */ ".aaaaaaaa." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".........." - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaeaaaaa." - /* 2 */ ".afghhgfa." - /* 3 */ ".afhffhfa." - /* 4 */ ".afghhgfa." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".........." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".iijii.ii." - /* 2 */ ".i......i." - /* 3 */ ".........." - /* 4 */ ".i......i." - /* 5 */ ".ii.ii.ii." - /* 6 */ ".........." - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".ak.k...a." - /* 3 */ ".a......a." - /* 4 */ ".a......a." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "lnnnnnnnnn" - /* 1 */ "laaaaaaaao" - /* 2 */ "laaaaaaaao" - /* 3 */ "laaaaaaaao" - /* 4 */ "laaaaaaaao" - /* 5 */ "laaaaaaaao" - /* 6 */ "pppppppppo", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House8x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // House8x7: - // The data has been exported from the gallery Desert, area index 29, ID 170, created by Aloe_vera - { - // Size: - 10, 6, 9, // SizeX = 10, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 10, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171: 0\n" /* carpet */ - "g:171:14\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 6\n" /* sandstonestairs */ - "q:128: 5\n" /* sandstonestairs */ - "r:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mmaaammmmm" - /* 1 */ "maaaaaaaam" - /* 2 */ "maaaaaaaam" - /* 3 */ "maaaaaaaam" - /* 4 */ "maaaaaaaam" - /* 5 */ "maaaaaaaam" - /* 6 */ "maaaaaaaam" - /* 7 */ "maaaaaaaam" - /* 8 */ "mmmmmmmmmm" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..bcd....." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".aaaaaaaa." - /* 3 */ ".aaaaaaaa." - /* 4 */ ".aaaaaaaa." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".aaaaaaaa." - /* 7 */ ".aaaaaaaa." - /* 8 */ ".........." - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaeaaaaa." - /* 2 */ ".afghhgfa." - /* 3 */ ".afhffhfa." - /* 4 */ ".afhgghfa." - /* 5 */ ".afhffhfa." - /* 6 */ ".afghhgfa." - /* 7 */ ".aaaaaaaa." - /* 8 */ ".........." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".iijii.ii." - /* 2 */ ".i......i." - /* 3 */ ".i......i." - /* 4 */ ".........." - /* 5 */ ".i......i." - /* 6 */ ".i......i." - /* 7 */ ".ii.ii.ii." - /* 8 */ ".........." - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".a..k...a." - /* 3 */ ".a......a." - /* 4 */ ".al....na." - /* 5 */ ".a......a." - /* 6 */ ".a......a." - /* 7 */ ".aaaaaaaa." - /* 8 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "oppppppppp" - /* 1 */ "oaaaaaaaaq" - /* 2 */ "oaaaaaaaaq" - /* 3 */ "oaaaaaaaaq" - /* 4 */ "oaaaaaaaaq" - /* 5 */ "oaaaaaaaaq" - /* 6 */ "oaaaaaaaaq" - /* 7 */ "oaaaaaaaaq" - /* 8 */ "rrrrrrrrrq", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House8x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House9x7: - // The data has been exported from the gallery Desert, area index 30, ID 171, created by Aloe_vera - { - // Size: - 11, 6, 9, // SizeX = 11, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171: 0\n" /* carpet */ - "g:171:15\n" /* carpet */ - "h:171:14\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 6\n" /* sandstonestairs */ - "r:128: 5\n" /* sandstonestairs */ - "s:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmaaammmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..bcd......" - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".aaaaaaaaa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".aaeaaaaaa." - /* 2 */ ".affgggffa." - /* 3 */ ".afghhhgfa." - /* 4 */ ".afghfhgfa." - /* 5 */ ".afghhhgfa." - /* 6 */ ".affgggffa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".iijii.iii." - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ "..........." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".ii.iii.ii." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".a..k....a." - /* 3 */ ".a.......a." - /* 4 */ ".al.....na." - /* 5 */ ".a.......a." - /* 6 */ ".a...o...a." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "pqqqqqqqqqq" - /* 1 */ "paaaaaaaaar" - /* 2 */ "paaaaaaaaar" - /* 3 */ "paaaaaaaaar" - /* 4 */ "paaaaaaaaar" - /* 5 */ "paaaaaaaaar" - /* 6 */ "paaaaaaaaar" - /* 7 */ "paaaaaaaaar" - /* 8 */ "ssssssssssr", - - // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House9x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseL13x12: - // The data has been exported from the gallery Desert, area index 53, ID 345, created by jakibaki - { - // Size: - 15, 6, 14, // SizeX = 15, SizeY = 6, SizeZ = 14 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 5, 14, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 43: 1\n" /* doubleslab */ - "f: 64: 7\n" /* wooddoorblock */ - "g:171: 0\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i:171:14\n" /* carpet */ - "j: 58: 0\n" /* workbench */ - "k: 24: 2\n" /* sandstone */ - "l: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 1\n" /* torch */ - "p: 50: 2\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r:128: 6\n" /* sandstonestairs */ - "s:128: 5\n" /* sandstonestairs */ - "t:128: 4\n" /* sandstonestairs */ - "u:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmaaammmmmmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmaaaaaaam" - /* 9 */ "mmmmmmmaaaaaaam" - /* 10 */ "mmmmmmmaaaaaaam" - /* 11 */ "mmmmmmmaaaaaaam" - /* 12 */ "mmmmmmmaaaaaaam" - /* 13 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "...bcd........." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaea." - /* 6 */ ".aaaaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ ".......aeaaaaa." - /* 9 */ "mmmmmm.aaaaaaa." - /* 10 */ "mmmmmm.aaaaaaa." - /* 11 */ "mmmmmm.aaaaaaa." - /* 12 */ "mmmmmm.aaaaaaa." - /* 13 */ "..............." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".aaafaaaaaaaaa." - /* 2 */ ".agghhhhhhhhga." - /* 3 */ ".aghiiiiiiiiha." - /* 4 */ ".aghiggggggiha." - /* 5 */ ".aghiiiiiigiha." - /* 6 */ ".agghhhhhigiha." - /* 7 */ ".aaaaaaahigiha." - /* 8 */ ".......ahigiha." - /* 9 */ "mmmmmm.ahiiiha." - /* 10 */ "mmmmmm.aghhhga." - /* 11 */ "mmmmmm.aggggja." - /* 12 */ "mmmmmm.aaaaaaa." - /* 13 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".kkklkkkk.kkkk." - /* 2 */ ".k...........k." - /* 3 */ ".k...........k." - /* 4 */ "..............." - /* 5 */ ".k...........k." - /* 6 */ ".k...........k." - /* 7 */ ".kkk.kkk.....k." - /* 8 */ ".......k.....k." - /* 9 */ "mmmmmm.k......." - /* 10 */ "mmmmmm.......k." - /* 11 */ "mmmmmm.k.....k." - /* 12 */ "mmmmmm.kkk.kkk." - /* 13 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".a......n....a." - /* 3 */ ".a...........a." - /* 4 */ ".ao..........a." - /* 5 */ ".a...........a." - /* 6 */ ".a..........pa." - /* 7 */ ".aaaaaaa.....a." - /* 8 */ ".......a.....a." - /* 9 */ "mmmmmm.a.....a." - /* 10 */ "mmmmmm.a.....a." - /* 11 */ "mmmmmm.a..q..a." - /* 12 */ "mmmmmm.aaaaaaa." - /* 13 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "rrrrrrrrrrrrrrs" - /* 1 */ "taaaaaaaaaaaaas" - /* 2 */ "taaaaaaaaaaaaas" - /* 3 */ "taaaaaaaaaaaaas" - /* 4 */ "taaaaaaaaaaaaas" - /* 5 */ "taaaaaaaaaaaaas" - /* 6 */ "taaaaaaaaaaaaas" - /* 7 */ "taaaaaaaaaaaaas" - /* 8 */ "tuuuuutaaaaaaas" - /* 9 */ "mmmmmmtaaaaaaas" - /* 10 */ "mmmmmmtaaaaaaas" - /* 11 */ "mmmmmmtaaaaaaas" - /* 12 */ "mmmmmmtaaaaaaas" - /* 13 */ "......tuuuuuuuu", - - // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseL13x12 - - - - //////////////////////////////////////////////////////////////////////////////// - // MarketStall: - // The data has been exported from the gallery Desert, area index 34, ID 175, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 85: 0\n" /* fence */ - "c:171:14\n" /* carpet */ - "d:171:15\n" /* carpet */ - "e:171: 0\n" /* carpet */ - "f: 35:14\n" /* wool */ - "g: 35: 0\n" /* wool */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "b.....b" - /* 1 */ "cddeddc" - /* 2 */ "cdeeedc" - /* 3 */ "cdeeedc" - /* 4 */ "cddeddc" - /* 5 */ "b.....b" - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "b.....b" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "b.....b" - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "b.....b" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "b.....b" - /* 6 */ "fgfgfgf" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "fgfgfgf" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "fgfgfgf" - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "fgfgfgf" - /* 2 */ "fgfgfgf" - /* 3 */ "fgfgfgf" - /* 4 */ "fgfgfgf" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 2, 0, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 5, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MarketStall - - - - //////////////////////////////////////////////////////////////////////////////// - // Marketplace: - // The data has been exported from the gallery Desert, area index 38, ID 261, created by Aloe_vera - { - // Size: - 14, 4, 16, // SizeX = 14, SizeY = 4, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 14, 3, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 12: 0\n" /* sand */ - "c: 24: 2\n" /* sandstone */ - "d: 12: 2\n" /* sand */ - "e: 85: 0\n" /* fence */ - "f: 5: 0\n" /* wood */ - "g:128: 2\n" /* sandstonestairs */ - "h:128: 0\n" /* sandstonestairs */ - "i: 8: 0\n" /* water */ - "j:128: 1\n" /* sandstonestairs */ - "k:128: 3\n" /* sandstonestairs */ - "l: 35: 0\n" /* wool */ - "m: 19: 0\n" /* sponge */ - "n: 35:14\n" /* wool */, - - // Block data: - // Level 0 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "aaaabbbaaabbbb" - /* 1 */ "aaaabbaabbabbb" - /* 2 */ "aababbabcabbbb" - /* 3 */ "aaaaabaaaaabbb" - /* 4 */ "bbbbbbbbbbbbbb" - /* 5 */ "bbbbbbbbbbaabb" - /* 6 */ "bbbbccccbbabab" - /* 7 */ "ccbbccccbbaaab" - /* 8 */ "ccbbccccbbabbb" - /* 9 */ "dcbbccccbbabaa" - /* 10 */ "ccbbbbbbbbaaba" - /* 11 */ "ccbbbbbbbbabaa" - /* 12 */ "bbbbbbbbbbabaa" - /* 13 */ "bbbaababbbaaba" - /* 14 */ "bbbcaaaabbabbb" - /* 15 */ "bbbcccabbbabbb" - - // Level 1 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "e...e.e...e..." - /* 1 */ ".............." - /* 2 */ ".............." - /* 3 */ "fffff.fffff..." - /* 4 */ ".............." - /* 5 */ "..........f..e" - /* 6 */ "....gggg..f..." - /* 7 */ ".f..hiij..f..." - /* 8 */ ".f..hiij..f..." - /* 9 */ ".f..kkkk..f..e" - /* 10 */ ".f............" - /* 11 */ ".f........f..e" - /* 12 */ "...fffff..f..." - /* 13 */ "..........f..." - /* 14 */ "..........f..." - /* 15 */ "...e...e..f..e" - - // Level 2 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "lnlnl.lnlnl..." - /* 1 */ ".............." - /* 2 */ ".............." - /* 3 */ "e...e.e...e..." - /* 4 */ ".............." - /* 5 */ "..........e..l" - /* 6 */ ".............n" - /* 7 */ ".e...........l" - /* 8 */ ".............n" - /* 9 */ "..........e..l" - /* 10 */ ".............." - /* 11 */ ".e........e..l" - /* 12 */ "...e...e.....n" - /* 13 */ ".............l" - /* 14 */ ".............n" - /* 15 */ "...lnlnl..e..l" - - // Level 3 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ "lnlnl.lnlnl..." - /* 2 */ "lnlnl.lnlnl..." - /* 3 */ "lnlnl.lnlnl..." - /* 4 */ ".............." - /* 5 */ "..........lll." - /* 6 */ "..........nnn." - /* 7 */ "ll........lll." - /* 8 */ "nn........nnn." - /* 9 */ "ll........lll." - /* 10 */ "nn............" - /* 11 */ "ll........lll." - /* 12 */ "...lnlnl..nnn." - /* 13 */ "...lnlnl..lll." - /* 14 */ "...lnlnl..nnn." - /* 15 */ "..........lll.", - - // Connectors: - "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Marketplace -}; // g_SandFlatRoofVillagePrefabs - - - - - - -const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // Well: - // The data has been exported from the gallery Desert, area index 44, ID 275, created by Aloe_vera - { - // Size: - 5, 16, 5, // SizeX = 5, SizeY = 16, SizeZ = 5 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 15, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 24: 0\n" /* sandstone */ - "c: 8: 0\n" /* water */ - "d:128: 2\n" /* sandstonestairs */ - "e:128: 0\n" /* sandstonestairs */ - "f:128: 1\n" /* sandstonestairs */ - "g:128: 3\n" /* sandstonestairs */ - "h:128: 6\n" /* sandstonestairs */ - "i:128: 4\n" /* sandstonestairs */ - "j:128: 5\n" /* sandstonestairs */ - "k:128: 7\n" /* sandstonestairs */ - "l: 44: 1\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "abbba" - /* 2 */ "abbba" - /* 3 */ "abbba" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 7 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 8 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcbcb" - /* 2 */ "bbcbb" - /* 3 */ "bcbcb" - /* 4 */ "bbbbb" - - // Level 9 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcbcb" - /* 2 */ "bbbbb" - /* 3 */ "bcbcb" - /* 4 */ "bbbbb" - - // Level 10 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcbcb" - /* 2 */ "bbbbb" - /* 3 */ "bcbcb" - /* 4 */ "bbbbb" - - // Level 11 - /* z\x* 01234 */ - /* 0 */ "ddddd" - /* 1 */ "ecccf" - /* 2 */ "ecbcf" - /* 3 */ "ecccf" - /* 4 */ "ggggf" - - // Level 12 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..b.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 13 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..b.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 14 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ ".hhh." - /* 2 */ ".ibj." - /* 3 */ ".kkj." - /* 4 */ "....." - - // Level 15 - /* z\x* 01234 */ - /* 0 */ "lllll" - /* 1 */ "lllll" - /* 2 */ "lllll" - /* 3 */ "lllll" - /* 4 */ "lllll", - - // Connectors: - "2: 4, 11, 2: 5\n" /* Type 2, direction X+ */ - "2: 2, 11, 4: 3\n" /* Type 2, direction Z+ */ - "2: 0, 11, 2: 4\n" /* Type 2, direction X- */ - "2: 2, 11, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_SandFlatRoofVillagePrefabsCount = ARRAYCOUNT(g_SandFlatRoofVillagePrefabs); - -const size_t g_SandFlatRoofVillageStartingPrefabsCount = ARRAYCOUNT(g_SandFlatRoofVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h deleted file mode 100644 index ea06de5b5..000000000 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// SandFlatRoofVillagePrefabs.h - -// Declares the prefabs in the group SandFlatRoofVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_SandFlatRoofVillagePrefabs[]; -extern const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[]; -extern const size_t g_SandFlatRoofVillagePrefabsCount; -extern const size_t g_SandFlatRoofVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp deleted file mode 100644 index c63f8161b..000000000 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ /dev/null @@ -1,2307 +0,0 @@ - -// SandVillagePrefabs.cpp - -// Defines the prefabs in the group SandVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "SandVillagePrefabs.h" - - - - - -const cPrefab::sDef g_SandVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // DoubleField: - // The data has been exported from the gallery Desert, area index 5, ID 75, created by tonibm1999 - { - // Size: - 13, 3, 9, // SizeX = 13, SizeY = 3, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 13, 2, 8, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 50: 5\n" /* torch */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "abbcbbabbcbba" - /* 2 */ "abbcbbabbcbba" - /* 3 */ "abbcbbabbcbba" - /* 4 */ "abbcbbabbcbba" - /* 5 */ "abbcbbabbcbba" - /* 6 */ "abbcbbabbcbba" - /* 7 */ "abbcbbabbcbba" - /* 8 */ "aaaaaaaaaaaaa" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "d.....d.....d" - /* 1 */ ".ee.ee.ee.ee." - /* 2 */ ".ee.ee.ee.ee." - /* 3 */ ".ee.ee.ee.ee." - /* 4 */ ".ee.ee.ee.ee." - /* 5 */ ".ee.ee.ee.ee." - /* 6 */ ".ee.ee.ee.ee." - /* 7 */ ".ee.ee.ee.ee." - /* 8 */ "d.....d.....d", - - // Connectors: - "-1: 6, 1, 8: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // DoubleField - - - - //////////////////////////////////////////////////////////////////////////////// - // House11x7: - // The data has been exported from the gallery Desert, area index 6, ID 81, created by Aloe_vera - { - // Size: - 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n: 50: 1\n" /* torch */ - "o: 50: 2\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".aaaaeaaaa." - /* 2 */ ".a.......a." - /* 3 */ ".a.......a." - /* 4 */ ".a.......a." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".affagaffa." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".affafaffa." - /* 6 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "haaaaaaaaah" - /* 2 */ ".a..i.i..a." - /* 3 */ ".a.......a." - /* 4 */ ".a..j.j..a." - /* 5 */ "kaaaaaaaaak" - /* 6 */ "lllllllllll" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "ccccccccccc" - /* 2 */ "haaaaaaaaah" - /* 3 */ ".an.....oa." - /* 4 */ "kaaaaaaaaak" - /* 5 */ "lllllllllll" - /* 6 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "ccccccccccc" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "lllllllllll" - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House11x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House11x9: - // The data has been exported from the gallery Desert, area index 11, ID 115, created by xoft - { - // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".aaaaaaaaa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".aaaaeaaaa." - /* 2 */ ".a.......a." - /* 3 */ ".a.......a." - /* 4 */ ".a.......a." - /* 5 */ ".a.......a." - /* 6 */ ".a.......a." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".affagaffa." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".a.......a." - /* 5 */ ".f.......f." - /* 6 */ ".f.......f." - /* 7 */ ".afffafffa." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "haaaaaaaaah" - /* 2 */ ".a..i.i..a." - /* 3 */ ".a.......a." - /* 4 */ ".a.......a." - /* 5 */ ".a.......a." - /* 6 */ ".a...j...a." - /* 7 */ "kaaaaaaaaak" - /* 8 */ "lllllllllll" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "ccccccccccc" - /* 2 */ "haaaaaaaaah" - /* 3 */ ".a.......a." - /* 4 */ ".a.......a." - /* 5 */ ".a.......a." - /* 6 */ "kaaaaaaaaak" - /* 7 */ "lllllllllll" - /* 8 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "ccccccccccc" - /* 3 */ "haaaaaaaaah" - /* 4 */ ".a.......a." - /* 5 */ "kaaaaaaaaak" - /* 6 */ "lllllllllll" - /* 7 */ "..........." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "ccccccccccc" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "lllllllllll" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House11x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House13x7: - // The data has been exported from the gallery Desert, area index 15, ID 125, created by Aloe_vera - { - // Size: - 13, 7, 7, // SizeX = 13, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaam" - /* 6 */ "mmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ ".....bcd....." - /* 1 */ ".aaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaa." - /* 6 */ "............." - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".aaaaaeaaaaa." - /* 2 */ ".a.........a." - /* 3 */ ".a.........a." - /* 4 */ ".a.........a." - /* 5 */ ".aaaaaaaaaaa." - /* 6 */ "............." - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".afffagafffa." - /* 2 */ ".f.........f." - /* 3 */ ".f.........f." - /* 4 */ ".f.........f." - /* 5 */ ".affafffaffa." - /* 6 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ccccccccccccc" - /* 1 */ "haaaaaaaaaaah" - /* 2 */ ".a...i.i...a." - /* 3 */ ".a.........a." - /* 4 */ ".a..j...j..a." - /* 5 */ "kaaaaaaaaaaak" - /* 6 */ "lllllllllllll" - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "ccccccccccccc" - /* 2 */ "haaaaaaaaaaah" - /* 3 */ ".a.........a." - /* 4 */ "kaaaaaaaaaaak" - /* 5 */ "lllllllllllll" - /* 6 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "ccccccccccccc" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "lllllllllllll" - /* 5 */ "............." - /* 6 */ ".............", - - // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House13x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House13x9: - // The data has been exported from the gallery Desert, area index 12, ID 116, created by xoft - { - // Size: - 13, 8, 9, // SizeX = 13, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ ".....bcd....." - /* 1 */ ".aaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".aaaaaeaaaaa." - /* 2 */ ".a.........a." - /* 3 */ ".a.........a." - /* 4 */ ".a.........a." - /* 5 */ ".a.........a." - /* 6 */ ".a.........a." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".afffagafffa." - /* 2 */ ".f.........f." - /* 3 */ ".f.........f." - /* 4 */ ".a.........a." - /* 5 */ ".f.........f." - /* 6 */ ".f.........f." - /* 7 */ ".affaffafffa." - /* 8 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ccccccccccccc" - /* 1 */ "haaaaaaaaaaah" - /* 2 */ ".a...i.i...a." - /* 3 */ ".a.........a." - /* 4 */ ".a.........a." - /* 5 */ ".a.........a." - /* 6 */ ".a..j..j...a." - /* 7 */ "kaaaaaaaaaaak" - /* 8 */ "lllllllllllll" - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "ccccccccccccc" - /* 2 */ "haaaaaaaaaaah" - /* 3 */ ".a.........a." - /* 4 */ ".a.........a." - /* 5 */ ".a.........a." - /* 6 */ "kaaaaaaaaaaak" - /* 7 */ "lllllllllllll" - /* 8 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "ccccccccccccc" - /* 3 */ "haaaaaaaaaaah" - /* 4 */ ".a.........a." - /* 5 */ "kaaaaaaaaaaak" - /* 6 */ "lllllllllllll" - /* 7 */ "............." - /* 8 */ "............." - - // Level 7 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "ccccccccccccc" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "lllllllllllll" - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ ".............", - - // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House13x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House15x9: - // The data has been exported from the gallery Desert, area index 13, ID 118, created by xoft - { - // Size: - 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmaaammmmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ ".....bcd......." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ "..............." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".aaaaaeaaaaaaa." - /* 2 */ ".a...........a." - /* 3 */ ".a...........a." - /* 4 */ ".a...........a." - /* 5 */ ".a...........a." - /* 6 */ ".a...........a." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".afffagaffaffa." - /* 2 */ ".f...........f." - /* 3 */ ".f...........f." - /* 4 */ ".a...........a." - /* 5 */ ".f...........f." - /* 6 */ ".f...........f." - /* 7 */ ".affaffaffaffa." - /* 8 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "ccccccccccccccc" - /* 1 */ "haaaaaaaaaaaaah" - /* 2 */ ".a...i.i..i..a." - /* 3 */ ".a...........a." - /* 4 */ ".a...........a." - /* 5 */ ".a...........a." - /* 6 */ ".a..j..j..j..a." - /* 7 */ "kaaaaaaaaaaaaak" - /* 8 */ "lllllllllllllll" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "ccccccccccccccc" - /* 2 */ "haaaaaaaaaaaaah" - /* 3 */ ".a...........a." - /* 4 */ ".a...........a." - /* 5 */ ".a...........a." - /* 6 */ "kaaaaaaaaaaaaak" - /* 7 */ "lllllllllllllll" - /* 8 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "ccccccccccccccc" - /* 3 */ "haaaaaaaaaaaaah" - /* 4 */ ".a...........a." - /* 5 */ "kaaaaaaaaaaaaak" - /* 6 */ "lllllllllllllll" - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "ccccccccccccccc" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "lllllllllllllll" - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", - - // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House15x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House16x9: - // The data has been exported from the gallery Desert, area index 16, ID 126, created by Aloe_vera - { - // Size: - 16, 8, 9, // SizeX = 16, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 16, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "........bcd....." - /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaaaaa." - /* 8 */ "................" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".aaaaaaaaeaaaaa." - /* 2 */ ".a............a." - /* 3 */ ".a............a." - /* 4 */ ".a............a." - /* 5 */ ".a............a." - /* 6 */ ".a............a." - /* 7 */ ".aaaaaaaaaaaaaa." - /* 8 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".affafffagafffa." - /* 2 */ ".f............f." - /* 3 */ ".f............f." - /* 4 */ ".a............a." - /* 5 */ ".f............f." - /* 6 */ ".f............f." - /* 7 */ ".affaffafffaffa." - /* 8 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "cccccccccccccccc" - /* 1 */ "haaaaaaaaaaaaaah" - /* 2 */ ".a..i...i.i...a." - /* 3 */ ".a............a." - /* 4 */ ".a............a." - /* 5 */ ".a............a." - /* 6 */ ".a..j..j...j..a." - /* 7 */ "kaaaaaaaaaaaaaak" - /* 8 */ "llllllllllllllll" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "cccccccccccccccc" - /* 2 */ "haaaaaaaaaaaaaah" - /* 3 */ ".a............a." - /* 4 */ ".a............a." - /* 5 */ ".a............a." - /* 6 */ "kaaaaaaaaaaaaaak" - /* 7 */ "llllllllllllllll" - /* 8 */ "................" - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "cccccccccccccccc" - /* 3 */ "haaaaaaaaaaaaaah" - /* 4 */ ".a............a." - /* 5 */ "kaaaaaaaaaaaaaak" - /* 6 */ "llllllllllllllll" - /* 7 */ "................" - /* 8 */ "................" - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "cccccccccccccccc" - /* 4 */ "aaaaaaaaaaaaaaaa" - /* 5 */ "llllllllllllllll" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................", - - // Connectors: - "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House16x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House7x7: - // The data has been exported from the gallery Desert, area index 8, ID 112, created by Aloe_vera - { - // Size: - 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j:128: 6\n" /* sandstonestairs */ - "k:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmaaam" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "...bcd." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaaea." - /* 2 */ ".a...a." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".afaga." - /* 2 */ ".f...f." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".afffa." - /* 6 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ccccccc" - /* 1 */ "haaaaah" - /* 2 */ ".a.i.a." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ "jaaaaaj" - /* 6 */ "kkkkkkk" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "ccccccc" - /* 2 */ "haaaaah" - /* 3 */ ".a...a." - /* 4 */ "jaaaaaj" - /* 5 */ "kkkkkkk" - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "ccccccc" - /* 3 */ "aaaaaaa" - /* 4 */ "kkkkkkk" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House7x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House9x7: - // The data has been exported from the gallery Desert, area index 9, ID 113, created by xoft - { - // Size: - 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmaaammm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...bcd..." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".aaaeaaa." - /* 2 */ ".a.....a." - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".afagafa." - /* 2 */ ".f.....f." - /* 3 */ ".f.....f." - /* 4 */ ".f.....f." - /* 5 */ ".affaffa." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "ccccccccc" - /* 1 */ "haaaaaaah" - /* 2 */ ".a.i.i.a." - /* 3 */ ".a.....a." - /* 4 */ ".a..j..a." - /* 5 */ "kaaaaaaak" - /* 6 */ "lllllllll" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "ccccccccc" - /* 2 */ "haaaaaaah" - /* 3 */ ".a.....a." - /* 4 */ "kaaaaaaak" - /* 5 */ "lllllllll" - /* 6 */ "........." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "ccccccccc" - /* 3 */ "aaaaaaaaa" - /* 4 */ "lllllllll" - /* 5 */ "........." - /* 6 */ ".........", - - // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House9x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House9x9: - // The data has been exported from the gallery Desert, area index 10, ID 114, created by xoft - { - // Size: - 9, 8, 9, // SizeX = 9, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f:102: 0\n" /* glasspane */ - "g: 64:12\n" /* wooddoorblock */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmaaammm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "maaaaaaam" - /* 7 */ "maaaaaaam" - /* 8 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...bcd..." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ ".aaaaaaa." - /* 7 */ ".aaaaaaa." - /* 8 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".aaaeaaa." - /* 2 */ ".a.....a." - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".a.....a." - /* 6 */ ".a.....a." - /* 7 */ ".aaaaaaa." - /* 8 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".afagafa." - /* 2 */ ".f.....f." - /* 3 */ ".f.....f." - /* 4 */ ".a.....a." - /* 5 */ ".f.....f." - /* 6 */ ".f.....f." - /* 7 */ ".affaffa." - /* 8 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "ccccccccc" - /* 1 */ "haaaaaaah" - /* 2 */ ".a.i.i.a." - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".a.....a." - /* 6 */ ".a..j..a." - /* 7 */ "kaaaaaaak" - /* 8 */ "lllllllll" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "ccccccccc" - /* 2 */ "haaaaaaah" - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".a.....a." - /* 6 */ "kaaaaaaak" - /* 7 */ "lllllllll" - /* 8 */ "........." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "ccccccccc" - /* 3 */ "haaaaaaah" - /* 4 */ ".a.....a." - /* 5 */ "kaaaaaaak" - /* 6 */ "lllllllll" - /* 7 */ "........." - /* 8 */ "........." - - // Level 7 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." - /* 3 */ "ccccccccc" - /* 4 */ "aaaaaaaaa" - /* 5 */ "lllllllll" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ ".........", - - // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // House9x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseL14x12: - // The data has been exported from the gallery Desert, area index 14, ID 124, created by Aloe_vera - { - // Size: - 14, 8, 12, // SizeX = 14, SizeY = 8, SizeZ = 12 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 14, 7, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e:128: 3\n" /* sandstonestairs */ - "f: 64: 3\n" /* wooddoorblock */ - "g: 64: 1\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64: 8\n" /* wooddoorblock */ - "j:128: 7\n" /* sandstonestairs */ - "k: 50: 3\n" /* torch */ - "l: 50: 2\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o:128: 6\n" /* sandstonestairs */ - "p: 50: 1\n" /* torch */ - "q:128: 5\n" /* sandstonestairs */ - "r:128: 4\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "mmmmaaammmmmmm" - /* 1 */ "maaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaam" - /* 8 */ "mmmmaaaaaaaaam" - /* 9 */ "mmmmmmaaaaaaam" - /* 10 */ "mmmmmmaaaaaaam" - /* 11 */ "mmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "....bcd......." - /* 1 */ ".aaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaaa." - /* 8 */ "....beaaaaaaa." - /* 9 */ "mmmmm.aaaaaaa." - /* 10 */ "mmmmm.aaaaaaa." - /* 11 */ "mmmmm........." - - // Level 2 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".aaaafaaaaaaa." - /* 2 */ ".a..........a." - /* 3 */ ".a..........a." - /* 4 */ ".a..........a." - /* 5 */ ".a..........a." - /* 6 */ ".a..........a." - /* 7 */ ".aaaaga.....a." - /* 8 */ "......a.....a." - /* 9 */ "mmmmm.a.....a." - /* 10 */ "mmmmm.aaaaaaa." - /* 11 */ "mmmmm........." - - // Level 3 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".ahhaiahhahha." - /* 2 */ ".h..........h." - /* 3 */ ".h..........h." - /* 4 */ ".a..........a." - /* 5 */ ".h..........h." - /* 6 */ ".h..........h." - /* 7 */ ".ahhaia.....a." - /* 8 */ "......h.....h." - /* 9 */ "mmmmm.h.....h." - /* 10 */ "mmmmm.ahhahha." - /* 11 */ "mmmmm........." - - // Level 4 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "cccccccccccccc" - /* 1 */ "jaaaaaaaaaaaad" - /* 2 */ ".a..k.k.....ad" - /* 3 */ ".a..........ad" - /* 4 */ ".a.........lad" - /* 5 */ ".a..........ad" - /* 6 */ ".a..n.n.....ad" - /* 7 */ "oaaaaaap...lad" - /* 8 */ "eeeeeba.....ad" - /* 9 */ "mmmmmba.....ad" - /* 10 */ "mmmmmbaaaaaaad" - /* 11 */ "mmmmmbq.....rd" - - // Level 5 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ "ccccccccccccd." - /* 2 */ "jaaaaaaaaaaad." - /* 3 */ ".a.........ad." - /* 4 */ ".a.........ad." - /* 5 */ ".a.........ad." - /* 6 */ "oaaaaaaa...ad." - /* 7 */ "eeeeeeba...ad." - /* 8 */ "......ba...ad." - /* 9 */ "mmmmm.ba...ad." - /* 10 */ "mmmmm.baaaaad." - /* 11 */ "mmmmm.bq...rd." - - // Level 6 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".............." - /* 2 */ "cccccccccccc.." - /* 3 */ "jaaaaaaaaaad.." - /* 4 */ ".a........ad.." - /* 5 */ "oaaaaaaaa.ad.." - /* 6 */ "eeeeeeeea.ad.." - /* 7 */ ".......ba.ad.." - /* 8 */ ".......ba.ad.." - /* 9 */ "mmmmm..ba.ad.." - /* 10 */ "mmmmm..baaad.." - /* 11 */ "mmmmm..bq.rd.." - - // Level 7 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".............." - /* 2 */ ".............." - /* 3 */ "ccccccccccc..." - /* 4 */ "aaaaaaaaaad..." - /* 5 */ "eeeeeeeebad..." - /* 6 */ "........bad..." - /* 7 */ "........bad..." - /* 8 */ "........bad..." - /* 9 */ "mmmmm...bad..." - /* 10 */ "mmmmm...bad..." - /* 11 */ "mmmmm...bad...", - - // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseL14x12 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseL14x12: - // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera - { - // Size: - 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 14, 6, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 0\n" /* sandstonestairs */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 1\n" /* sandstonestairs */ - "e:128: 3\n" /* sandstonestairs */ - "f: 64: 7\n" /* wooddoorblock */ - "g: 64: 5\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j:128: 7\n" /* sandstonestairs */ - "k: 50: 3\n" /* torch */ - "l: 50: 4\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 4\n" /* sandstonestairs */ - "q: 50: 1\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "mmmmmmmaaammmm" - /* 1 */ "maaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaam" - /* 6 */ "mmmmaaamaaaaam" - /* 7 */ "mmmmmmmmaaaaam" - /* 8 */ "mmmmmmmmaaaaam" - /* 9 */ "mmmmmmmmaaaaam" - /* 10 */ "mmmmmmmmaaaaam" - /* 11 */ "mmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".......bcd...." - /* 1 */ ".aaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaa." - /* 6 */ "....bed.aaaaa." - /* 7 */ "........aaaaa." - /* 8 */ "........aaaaa." - /* 9 */ "........aaaaa." - /* 10 */ "........aaaaa." - /* 11 */ ".............." - - // Level 2 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".aaaaaaafaaaa." - /* 2 */ ".a..........a." - /* 3 */ ".a..........a." - /* 4 */ ".a..........a." - /* 5 */ ".aaaagaaa...a." - /* 6 */ "........a...a." - /* 7 */ "........a...a." - /* 8 */ "........a...a." - /* 9 */ "........a...a." - /* 10 */ "........aaaaa." - /* 11 */ ".............." - - // Level 3 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".ahhahhaiahha." - /* 2 */ ".h..........h." - /* 3 */ ".h..........h." - /* 4 */ ".h..........a." - /* 5 */ ".ahhaiahh...h." - /* 6 */ "........h...h." - /* 7 */ "........a...a." - /* 8 */ "........h...h." - /* 9 */ "........h...h." - /* 10 */ "........ahhha." - /* 11 */ ".............." - - // Level 4 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "cccccccccccccc" - /* 1 */ "jaaaaaaaaaaaad" - /* 2 */ ".a.....k.k..ad" - /* 3 */ ".a..........ad" - /* 4 */ ".a..l.l.....ad" - /* 5 */ "naaaaaaaa...ad" - /* 6 */ "eeeeeeeba...ad" - /* 7 */ ".......ba...ad" - /* 8 */ ".......ba...ad" - /* 9 */ ".......ba...ad" - /* 10 */ ".......baaaaad" - /* 11 */ ".......bo...pd" - - // Level 5 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ "ccccccccccccc." - /* 2 */ "jaaaaaaaaaaad." - /* 3 */ ".aq........ad." - /* 4 */ "naaaaaaaaa.ad." - /* 5 */ "eeeeeeeeba.ad." - /* 6 */ "........ba.ad." - /* 7 */ "........ba.ad." - /* 8 */ "........ba.ad." - /* 9 */ "........balad." - /* 10 */ "........baaad." - /* 11 */ "........bo.pd." - - // Level 6 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".............." - /* 2 */ "cccccccccccc.." - /* 3 */ "aaaaaaaaaaad.." - /* 4 */ "eeeeeeeeebad.." - /* 5 */ ".........bad.." - /* 6 */ ".........bad.." - /* 7 */ ".........bad.." - /* 8 */ ".........bad.." - /* 9 */ ".........bad.." - /* 10 */ ".........bad.." - /* 11 */ ".........bad..", - - // Connectors: - "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseL14x12 - - - - //////////////////////////////////////////////////////////////////////////////// - // SingleField: - // The data has been exported from the gallery Desert, area index 17, ID 127, created by Aloe_vera - { - // Size: - 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 10, 2, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 50: 5\n" /* torch */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "abbbbbbbba" - /* 2 */ "abbbbbbbba" - /* 3 */ "acccccccca" - /* 4 */ "abbbbbbbba" - /* 5 */ "abbbbbbbba" - /* 6 */ "aaaaaaaaaa" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "d........d" - /* 1 */ ".eeeeeeee." - /* 2 */ ".eeeeeeee." - /* 3 */ ".........." - /* 4 */ ".eeeeeeee." - /* 5 */ ".eeeeeeee." - /* 6 */ "d........d", - - // Connectors: - "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SingleField - - - - //////////////////////////////////////////////////////////////////////////////// - // SmallHut: - // The data has been exported from the gallery Desert, area index 4, ID 68, created by tonibm1999 - { - // Size: - 5, 6, 6, // SizeX = 5, SizeY = 6, SizeZ = 6 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 5, 5, 5, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 3\n" /* sandstonestairs */ - "c: 24: 2\n" /* sandstone */ - "d: 50: 5\n" /* torch */ - "e: 26:10\n" /* bedblock */ - "f: 26: 2\n" /* bedblock */ - "g: 64: 5\n" /* wooddoorblock */ - "h: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - /* 5 */ "mmamm" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - /* 5 */ "..b.." - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "accca" - /* 1 */ "cdedc" - /* 2 */ "c.f.c" - /* 3 */ "c...c" - /* 4 */ "acgca" - /* 5 */ "....." - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "ac.ca" - /* 1 */ "c...c" - /* 2 */ "....." - /* 3 */ "c...c" - /* 4 */ "achca" - /* 5 */ "....." - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "accca" - /* 1 */ "c...c" - /* 2 */ "c...c" - /* 3 */ "c...c" - /* 4 */ "accca" - /* 5 */ "....." - - // Level 5 - /* z\x* 01234 */ - /* 0 */ ".aaa." - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ ".aaa." - /* 5 */ ".....", - - // Connectors: - "-1: 2, 1, 5: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SmallHut -}; // g_SandVillagePrefabs - - - - - - -const cPrefab::sDef g_SandVillageStartingPrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // RoofedWell: - // The data has been exported from the gallery Desert, area index 43, ID 274, created by Aloe_vera - { - // Size: - 7, 14, 7, // SizeX = 7, SizeY = 14, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 13, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 24: 0\n" /* sandstone */ - "c: 8: 0\n" /* water */ - "d: 12: 0\n" /* sand */ - "e: 4: 0\n" /* cobblestone */ - "f: 13: 0\n" /* gravel */ - "g:118: 3\n" /* cauldronblock */ - "h: 85: 0\n" /* fence */ - "i:128: 2\n" /* sandstonestairs */ - "j:128: 7\n" /* sandstonestairs */ - "k:128: 4\n" /* sandstonestairs */ - "l:128: 5\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 3\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "ddeeedd" - /* 1 */ "dbbbbbd" - /* 2 */ "ebcccbe" - /* 3 */ "ebcccbe" - /* 4 */ "ebcccbe" - /* 5 */ "dbbbbbd" - /* 6 */ "ddeeedd" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "ddfffdd" - /* 1 */ "dbbbbbd" - /* 2 */ "fbcccbf" - /* 3 */ "fbcccbf" - /* 4 */ "fbcccbf" - /* 5 */ "dbbbbbd" - /* 6 */ "ddfffdd" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bbbbb." - /* 2 */ ".b...b." - /* 3 */ ".b.g.b." - /* 4 */ ".b...b." - /* 5 */ ".bbbbb." - /* 6 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "iiiiiii" - /* 1 */ "jbjjjbj" - /* 2 */ ".k...l." - /* 3 */ ".k.h.l." - /* 4 */ ".k...l." - /* 5 */ "nbnnnbn" - /* 6 */ "ooooooo" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "iiiiiii" - /* 2 */ "jb...bj" - /* 3 */ ".b.h.b." - /* 4 */ "nb...bn" - /* 5 */ "ooooooo" - /* 6 */ "......." - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "iiiiiii" - /* 3 */ "bbbbbbb" - /* 4 */ "ooooooo" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "2: 6, 8, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 8, 6: 3\n" /* Type 2, direction Z+ */ - "2: 0, 8, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 8, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // RoofedWell - - - - //////////////////////////////////////////////////////////////////////////////// - // Well: - // The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera - { - // Size: - 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 3, 12, 3, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 24: 0\n" /* sandstone */ - "c: 8: 0\n" /* water */ - "d: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123 */ - /* 0 */ "aaaa" - /* 1 */ "aaaa" - /* 2 */ "aaaa" - /* 3 */ "aaaa" - - // Level 1 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 2 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 3 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 4 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 5 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 6 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 7 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 8 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "b..b" - /* 2 */ "b..b" - /* 3 */ "bbbb" - - // Level 9 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 10 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 11 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 12 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bbbb" - /* 2 */ "bbbb" - /* 3 */ "bbbb", - - // Connectors: - "2: 2, 8, 0: 2\n" /* Type 2, direction Z- */ - "2: 0, 8, 1: 4\n" /* Type 2, direction X- */ - "2: 1, 8, 3: 3\n" /* Type 2, direction Z+ */ - "2: 3, 8, 2: 5\n" /* Type 2, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_SandVillagePrefabsCount = ARRAYCOUNT(g_SandVillagePrefabs); - -const size_t g_SandVillageStartingPrefabsCount = ARRAYCOUNT(g_SandVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/SandVillagePrefabs.h b/src/Generating/Prefabs/SandVillagePrefabs.h deleted file mode 100644 index 7b00db56f..000000000 --- a/src/Generating/Prefabs/SandVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// SandVillagePrefabs.h - -// Declares the prefabs in the group SandVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_SandVillagePrefabs[]; -extern const cPrefab::sDef g_SandVillageStartingPrefabs[]; -extern const size_t g_SandVillagePrefabsCount; -extern const size_t g_SandVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index 1655f50b9..112531641 100644 --- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -32,9 +32,9 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "b: 20: 0\n" /* glass */ "c: 5: 5\n" /* wood */ "d: 8: 0\n" /* water */ - "e: 64: 4\n" /* wooddoorblock */ - "f: 64:12\n" /* wooddoorblock */ - "g: 64:13\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 8\n" /* wooddoorblock */ + "g: 64: 9\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -280,18 +280,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = ".: 0: 0\n" /* air */ "a: 5: 5\n" /* wood */ "b: 5: 0\n" /* wood */ - "c: 64: 5\n" /* wooddoorblock */ - "d: 64: 2\n" /* wooddoorblock */ - "e: 64: 4\n" /* wooddoorblock */ - "f: 64: 1\n" /* wooddoorblock */ - "g: 20: 0\n" /* glass */ - "h: 64:12\n" /* wooddoorblock */ - "i: 76: 3\n" /* redstonetorchon */ - "j: 64: 8\n" /* wooddoorblock */ - "k: 76: 4\n" /* redstonetorchon */ - "l: 76: 2\n" /* redstonetorchon */ - "m: 19: 0\n" /* sponge */ - "n: 76: 1\n" /* redstonetorchon */, + "c: 64: 2\n" /* wooddoorblock */ + "d: 64: 1\n" /* wooddoorblock */ + "e: 20: 0\n" /* glass */ + "f: 64: 9\n" /* wooddoorblock */ + "g: 76: 3\n" /* redstonetorchon */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 76: 4\n" /* redstonetorchon */ + "j: 76: 2\n" /* redstonetorchon */ + "k: 76: 1\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 @@ -313,28 +311,28 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789 */ /* 0 */ "abbbbbmmmm" /* 1 */ "c.....bbmm" - /* 2 */ "d.......bm" + /* 2 */ "c.......bm" /* 3 */ "abb.....bm" /* 4 */ "mmmbb....b" /* 5 */ "mmmmmb...b" /* 6 */ "mmmmmb...b" /* 7 */ "mmmmmmb..b" /* 8 */ "mmmmmmb..b" - /* 9 */ "mmmmmmaefa" + /* 9 */ "mmmmmmadda" // Level 2 /* z\x* */ /* * 0123456789 */ - /* 0 */ "abggbbmmmm" - /* 1 */ "h...i.bbmm" - /* 2 */ "j.......bm" - /* 3 */ "abbk....bm" + /* 0 */ "abeebbmmmm" + /* 1 */ "f...g.bbmm" + /* 2 */ "h.......bm" + /* 3 */ "abbi....bm" /* 4 */ "mmmbb....b" - /* 5 */ "mmmmmb..lb" - /* 6 */ "mmmmmbn..g" - /* 7 */ "mmmmmmb..g" + /* 5 */ "mmmmmb..jb" + /* 6 */ "mmmmmbk..e" + /* 7 */ "mmmmmmb..e" /* 8 */ "mmmmmmb..b" - /* 9 */ "mmmmmmahja" + /* 9 */ "mmmmmmafha" // Level 3 /* z\x* */ @@ -396,20 +394,17 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 5\n" /* wood */ "b: 5: 0\n" /* wood */ "c: 64: 3\n" /* wooddoorblock */ - "d: 64: 6\n" /* wooddoorblock */ - "e: 64: 5\n" /* wooddoorblock */ - "f: 64: 0\n" /* wooddoorblock */ - "g: 64: 2\n" /* wooddoorblock */ - "h: 64: 1\n" /* wooddoorblock */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 64:12\n" /* wooddoorblock */ - "k: 20: 0\n" /* glass */ - "l: 76: 1\n" /* redstonetorchon */ + "d: 64: 2\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 1\n" /* wooddoorblock */ + "g: 64: 8\n" /* wooddoorblock */ + "h: 64: 9\n" /* wooddoorblock */ + "i: 20: 0\n" /* glass */ + "j: 76: 1\n" /* redstonetorchon */ + "k: 76: 2\n" /* redstonetorchon */ + "l: 76: 3\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */ - "n: 76: 2\n" /* redstonetorchon */ - "o: 76: 3\n" /* redstonetorchon */ - "p: 76: 4\n" /* redstonetorchon */ - "q: 64: 9\n" /* wooddoorblock */, + "n: 76: 4\n" /* redstonetorchon */, // Block data: // Level 0 @@ -435,42 +430,42 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmacdammmmmm" + /* 0 */ "mmmmmmaccammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmb..bmmmmmm" /* 3 */ "mmmmmmb..bmmmmmm" /* 4 */ "mmmmmmb..bmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" /* 6 */ "abbbbbb..bbbbbba" - /* 7 */ "e..............f" - /* 8 */ "g..............f" + /* 7 */ "d..............e" + /* 8 */ "d..............e" /* 9 */ "abbbbbb..bbbbbba" /* 10 */ "mmmmmmb..bmmmmmm" /* 11 */ "mmmmmmb..bmmmmmm" /* 12 */ "mmmmmmb..bmmmmmm" /* 13 */ "mmmmmmb..bmmmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmahhammmmmm" + /* 15 */ "mmmmmmaffammmmmm" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmaijammmmmm" + /* 0 */ "mmmmmmaghammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" - /* 2 */ "mmmmmmk..kmmmmmm" - /* 3 */ "mmmmmmk..kmmmmmm" - /* 4 */ "mmmmmmblnbmmmmmm" + /* 2 */ "mmmmmmi..immmmmm" + /* 3 */ "mmmmmmi..immmmmm" + /* 4 */ "mmmmmmbjkbmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" - /* 6 */ "abkkbbb..bbbkkba" - /* 7 */ "j...o......o...i" - /* 8 */ "i...p......p...q" - /* 9 */ "abkkbbb..bbbkkba" + /* 6 */ "abiibbb..bbbiiba" + /* 7 */ "h...l......l...g" + /* 8 */ "g...n......n...h" + /* 9 */ "abiibbb..bbbiiba" /* 10 */ "mmmmmmb..bmmmmmm" - /* 11 */ "mmmmmmblnbmmmmmm" - /* 12 */ "mmmmmmk..kmmmmmm" - /* 13 */ "mmmmmmk..kmmmmmm" + /* 11 */ "mmmmmmbjkbmmmmmm" + /* 12 */ "mmmmmmi..immmmmm" + /* 13 */ "mmmmmmi..immmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmaqiammmmmm" + /* 15 */ "mmmmmmahgammmmmm" // Level 3 /* z\x* 111111 */ @@ -549,8 +544,6 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "h: 64: 8\n" /* wooddoorblock */ "i: 76: 4\n" /* redstonetorchon */ "j: 64: 0\n" /* wooddoorblock */ - "k: 64: 7\n" /* wooddoorblock */ - "l: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -607,7 +600,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789012345 */ /* 0 */ "mmmmmmmbbbbbbbba" /* 1 */ "mmmmmmmb.......j" - /* 2 */ "mmmmmmmb.......k" + /* 2 */ "mmmmmmmb.......j" /* 3 */ "mmmmmmmbbbbbbbba" // Level 7 @@ -615,7 +608,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789012345 */ /* 0 */ "mmmmmmmmbbbeebba" /* 1 */ "mmmmmmmmb.g....h" - /* 2 */ "mmmmmmmmb.i....l" + /* 2 */ "mmmmmmmmb.i....f" /* 3 */ "mmmmmmmmbbbeebba" // Level 8 @@ -672,19 +665,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 5\n" /* wood */ "b: 5: 0\n" /* wood */ "c: 64: 3\n" /* wooddoorblock */ - "d: 64: 6\n" /* wooddoorblock */ - "e: 64: 5\n" /* wooddoorblock */ - "f: 64: 0\n" /* wooddoorblock */ - "g: 64: 2\n" /* wooddoorblock */ - "h: 64: 8\n" /* wooddoorblock */ - "i: 64:12\n" /* wooddoorblock */ - "j: 20: 0\n" /* glass */ - "k: 76: 1\n" /* redstonetorchon */ - "l: 76: 2\n" /* redstonetorchon */ - "m: 19: 0\n" /* sponge */ - "n: 76: 3\n" /* redstonetorchon */ - "o: 76: 4\n" /* redstonetorchon */ - "p: 64: 9\n" /* wooddoorblock */, + "d: 64: 2\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 8\n" /* wooddoorblock */ + "g: 64: 9\n" /* wooddoorblock */ + "h: 20: 0\n" /* glass */ + "i: 76: 1\n" /* redstonetorchon */ + "j: 76: 2\n" /* redstonetorchon */ + "k: 76: 3\n" /* redstonetorchon */ + "l: 76: 4\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 @@ -704,30 +694,30 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmacdammmmmm" + /* 0 */ "mmmmmmaccammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmb..bmmmmmm" /* 3 */ "mmmmmmb..bmmmmmm" /* 4 */ "mmmmmmb..bmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" /* 6 */ "abbbbbb..bbbbbba" - /* 7 */ "e..............f" - /* 8 */ "g..............f" + /* 7 */ "d..............e" + /* 8 */ "d..............e" /* 9 */ "abbbbbbbbbbbbbba" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmahiammmmmm" + /* 0 */ "mmmmmmafgammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" - /* 2 */ "mmmmmmj..jmmmmmm" - /* 3 */ "mmmmmmj..jmmmmmm" - /* 4 */ "mmmmmmbklbmmmmmm" + /* 2 */ "mmmmmmh..hmmmmmm" + /* 3 */ "mmmmmmh..hmmmmmm" + /* 4 */ "mmmmmmbijbmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" - /* 6 */ "abjjbbb..bbbjjba" - /* 7 */ "i...n......n...h" - /* 8 */ "h...o......o...p" - /* 9 */ "abjjbbbjjbbbjjba" + /* 6 */ "abhhbbb..bbbhhba" + /* 7 */ "g...k......k...f" + /* 8 */ "f...l......l...g" + /* 9 */ "abhhbbbhhbbbhhba" // Level 3 /* z\x* 111111 */ @@ -974,14 +964,12 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 0\n" /* wood */ "b: 5: 5\n" /* wood */ "c: 20: 0\n" /* glass */ - "d: 64: 5\n" /* wooddoorblock */ + "d: 64: 2\n" /* wooddoorblock */ "e: 64: 0\n" /* wooddoorblock */ - "f: 64: 2\n" /* wooddoorblock */ - "g: 76: 3\n" /* redstonetorchon */ - "h: 64:12\n" /* wooddoorblock */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 64: 9\n" /* wooddoorblock */ - "k: 76: 4\n" /* redstonetorchon */ + "f: 76: 3\n" /* redstonetorchon */ + "g: 64: 9\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 76: 4\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */, // Block data: @@ -1001,7 +989,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 0 */ "mmaccccccccccamm" /* 1 */ "ba............ab" /* 2 */ "d..............e" - /* 3 */ "f..............e" + /* 3 */ "d..............e" /* 4 */ "ba............ab" /* 5 */ "mmaccccccccccamm" @@ -1009,10 +997,10 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "mmaccccccccccamm" - /* 1 */ "bag..........gab" - /* 2 */ "h..............i" - /* 3 */ "i..............j" - /* 4 */ "bak..........kab" + /* 1 */ "baf..........fab" + /* 2 */ "g..............h" + /* 3 */ "h..............g" + /* 4 */ "bai..........iab" /* 5 */ "mmaccccccccccamm" // Level 3 @@ -1673,7 +1661,8 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "j: 76: 4\n" /* redstonetorchon */ "k: 64: 1\n" /* wooddoorblock */ "l: 64: 8\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */, + "m: 19: 0\n" /* sponge */ + "n: 64: 9\n" /* wooddoorblock */, // Block data: // Level 0 @@ -1721,7 +1710,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // Level 2 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ "mmmmallammmmmm" + /* 0 */ "mmmmalnammmmmm" /* 1 */ "mmmmb..bmmmmmm" /* 2 */ "mmmmc..cmmmmmm" /* 3 */ "mmmcc..ccmmmmm" @@ -1729,14 +1718,14 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 5 */ "mcc......ccmmm" /* 6 */ "mc........ccba" /* 7 */ "c............l" - /* 8 */ "c............l" + /* 8 */ "c............n" /* 9 */ "mc........ccba" /* 10 */ "mcc......ccmmm" /* 11 */ "mmcc....ccmmmm" /* 12 */ "mmmcc..ccmmmmm" /* 13 */ "mmmmc..cmmmmmm" /* 14 */ "mmmmb..bmmmmmm" - /* 15 */ "mmmmallammmmmm" + /* 15 */ "mmmmanlammmmmm" /* 16 */ "dddddddddddddd" // Level 3 diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 488497ac1..2475565c0 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -5,11 +5,6 @@ #include "Globals.h" #include "VillageGen.h" -#include "Prefabs/AlchemistVillagePrefabs.h" -#include "Prefabs/JapaneseVillagePrefabs.h" -#include "Prefabs/PlainsVillagePrefabs.h" -#include "Prefabs/SandVillagePrefabs.h" -#include "Prefabs/SandFlatRoofVillagePrefabs.h" #include "PieceGenerator.h" @@ -52,6 +47,16 @@ public: ) : super(a_PieceDefs, a_NumPieceDefs, a_StartingPieceDefs, a_NumStartingPieceDefs) { + AddRoadPieces(); + } + + cVillagePiecePool(void) + { + AddRoadPieces(); + } + + void AddRoadPieces(void) + { // Add the road pieces: for (int len = 27; len < 60; len += 12) { @@ -115,10 +120,8 @@ public: int a_MaxRoadDepth, int a_MaxSize, int a_Density, - cPiecePool & a_Prefabs, - cTerrainHeightGenPtr a_HeightGen, - BLOCKTYPE a_RoadBlock, - BLOCKTYPE a_WaterRoadBlock + cVillagePiecePool & a_Prefabs, + cTerrainHeightGenPtr a_HeightGen ) : super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Seed(a_Seed), @@ -127,9 +130,7 @@ public: m_Density(a_Density), m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, cChunkDef::Height - 1, a_OriginZ + a_MaxSize), m_Prefabs(a_Prefabs), - m_HeightGen(a_HeightGen), - m_RoadBlock(a_RoadBlock), - m_WaterRoadBlock(a_WaterRoadBlock) + m_HeightGen(a_HeightGen) { // Generate the pieces for this village; don't care about the Y coord: cBFSPieceGenerator pg(*this, a_Seed); @@ -172,7 +173,7 @@ protected: cCuboid m_Borders; /** Prefabs to use for buildings */ - cPiecePool & m_Prefabs; + cVillagePiecePool & m_Prefabs; /** The underlying height generator, used for placing the structures on top of the terrain. */ cTerrainHeightGenPtr m_HeightGen; @@ -180,12 +181,6 @@ protected: /** The village pieces, placed by the generator. */ cPlacedPieces m_Pieces; - /** The block to use for the roads. */ - BLOCKTYPE m_RoadBlock; - - /** The block used for the roads if the road is on water. */ - BLOCKTYPE m_WaterRoadBlock; - // cGridStructGen::cStructure overrides: virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override @@ -241,17 +236,21 @@ protected: int MaxX = std::min(RoadCoords.p2.x - a_Chunk.GetChunkX() * cChunkDef::Width, cChunkDef::Width - 1); int MinZ = std::max(RoadCoords.p1.z - a_Chunk.GetChunkZ() * cChunkDef::Width, 0); int MaxZ = std::min(RoadCoords.p2.z - a_Chunk.GetChunkZ() * cChunkDef::Width, cChunkDef::Width - 1); + auto WaterRoadBlockType = m_Prefabs.GetVillageWaterRoadBlockType(); + auto WaterRoadBlockMeta = m_Prefabs.GetVillageWaterRoadBlockMeta(); + auto RoadBlockType = m_Prefabs.GetVillageRoadBlockType(); + auto RoadBlockMeta = m_Prefabs.GetVillageRoadBlockMeta(); for (int z = MinZ; z <= MaxZ; z++) { for (int x = MinX; x <= MaxX; x++) { if (IsBlockWater(a_Chunk.GetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z))) { - a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_WaterRoadBlock); + a_Chunk.SetBlockTypeMeta(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, WaterRoadBlockType, WaterRoadBlockMeta); } else { - a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_RoadBlock); + a_Chunk.SetBlockTypeMeta(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, RoadBlockType, RoadBlockMeta); } } } @@ -336,30 +335,18 @@ protected: //////////////////////////////////////////////////////////////////////////////// // cVillageGen: -static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); -static cVillagePiecePool g_SandFlatRoofVillage(g_SandFlatRoofVillagePrefabs, g_SandFlatRoofVillagePrefabsCount, g_SandFlatRoofVillageStartingPrefabs, g_SandFlatRoofVillageStartingPrefabsCount); -static cVillagePiecePool g_AlchemistVillage(g_AlchemistVillagePrefabs, g_AlchemistVillagePrefabsCount, g_AlchemistVillageStartingPrefabs, g_AlchemistVillageStartingPrefabsCount); -static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); -static cVillagePiecePool g_JapaneseVillage(g_JapaneseVillagePrefabs, g_JapaneseVillagePrefabsCount, g_JapaneseVillageStartingPrefabs, g_JapaneseVillageStartingPrefabsCount); - -static cVillagePiecePool * g_DesertVillagePools[] = -{ - &g_SandVillage, - &g_SandFlatRoofVillage, - &g_AlchemistVillage, -} ; - -static cVillagePiecePool * g_PlainsVillagePools[] = -{ - &g_PlainsVillage, - &g_JapaneseVillage, -} ; - - - - - -cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGenPtr a_BiomeGen, cTerrainHeightGenPtr a_HeightGen) : +cVillageGen::cVillageGen( + int a_Seed, + int a_GridSize, + int a_MaxOffset, + int a_MaxDepth, + int a_MaxSize, + int a_MinDensity, + int a_MaxDensity, + cBiomeGenPtr a_BiomeGen, + cTerrainHeightGenPtr a_HeightGen, + const AStringVector & a_PrefabsToLoad +) : super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSize, a_MaxSize, 100), m_Noise(a_Seed + 1000), m_MaxDepth(a_MaxDepth), @@ -369,6 +356,21 @@ cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxD m_BiomeGen(a_BiomeGen), m_HeightGen(a_HeightGen) { + for (const auto & toLoad: a_PrefabsToLoad) + { + auto prefabs = std::make_shared<cVillagePiecePool>(); + auto fileName = Printf("Prefabs%sVillages%s%s.cubeset", cFile::GetPathSeparator().c_str(), cFile::GetPathSeparator().c_str(), toLoad.c_str()); + if (prefabs->LoadFromFile(fileName, true)) + { + if (NoCaseCompare(prefabs->GetIntendedUse(), "village") != 0) + { + LOGWARNING("Village generator: File %s is intended for use in \"%s\", rather than villages. Loading the file, but the generator may behave unexpectedly.", + fileName.c_str(), prefabs->GetIntendedUse().c_str() + ); + } + m_Pools.push_back(std::move(prefabs)); + } + } } @@ -383,60 +385,48 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_GridX, int a_Gr cChunkDef::BiomeMap Biomes; m_BiomeGen->GenBiomes(ChunkX, ChunkZ, Biomes); - // Check if all the biomes are village-friendly: - // If just one is not, no village is created, because it's likely that an unfriendly biome is too close - cVillagePiecePool * VillagePrefabs = nullptr; - BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; - BLOCKTYPE WaterRoadBlock = E_BLOCK_PLANKS; - int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; - cVillagePiecePool * PlainsVillage = g_PlainsVillagePools[static_cast<size_t>(rnd) % ARRAYCOUNT(g_PlainsVillagePools)]; - cVillagePiecePool * DesertVillage = g_DesertVillagePools[static_cast<size_t>(rnd) % ARRAYCOUNT(g_DesertVillagePools)]; + // Get a list of pools that support each biome within the chunk: + // If just one column's biome is not allowed, the pool is not used because it's likely that an unfriendly biome is too close + auto availablePools = m_Pools; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { - switch (Biomes[i]) - { - case biDesert: - case biDesertM: + auto biome = Biomes[i]; + availablePools.erase(std::remove_if(availablePools.begin(), availablePools.end(), + [biome](SharedPtr<cPrefabPiecePool> a_Pool) { - // These biomes allow sand villages - VillagePrefabs = DesertVillage; - // RoadBlock = E_BLOCK_SANDSTONE; - break; - } - case biPlains: - case biSavanna: - case biSavannaM: - case biSunflowerPlains: - { - // These biomes allow plains-style villages - VillagePrefabs = PlainsVillage; - break; - } - default: - { - // Village-unfriendly biome, bail out with zero structure: - return cStructurePtr(); - } - } // switch (Biomes[i]) - } // for i - Biomes[] + return !a_Pool->IsBiomeAllowed(biome); + }), + availablePools.end() + ); + // Bail out if no compatible pools left: + if (availablePools.empty()) + { + return cStructurePtr(); + } + } + + // Pick one pool from the available pools: + if (availablePools.empty()) + { + return cStructurePtr(); + } + auto rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; + auto pool = availablePools[static_cast<size_t>(rnd) % availablePools.size()]; + rnd /= 137; // Choose density for the village, random between m_MinDensity and m_MaxDensity: int Density; - if (m_MaxDensity > m_MinDensity) + if (pool->GetMaxDensity() > pool->GetMinDensity()) { - Density = m_MinDensity + rnd % (m_MaxDensity - m_MinDensity); + Density = pool->GetMinDensity() + rnd % (pool->GetMaxDensity() - pool->GetMinDensity()); } else { - Density = m_MinDensity; + Density = pool->GetMinDensity(); } // Create a village based on the chosen prefabs: - if (VillagePrefabs == nullptr) - { - return cStructurePtr(); - } - return cStructurePtr(new cVillage(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock, WaterRoadBlock)); + return cStructurePtr(new cVillage(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *pool.get(), m_HeightGen)); } diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h index c384ed9e5..e7f9f2529 100644 --- a/src/Generating/VillageGen.h +++ b/src/Generating/VillageGen.h @@ -16,15 +16,34 @@ +// fwd: +class cVillagePiecePool; + + + + + class cVillageGen : public cGridStructGen { typedef cGridStructGen super; public: - cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGenPtr a_BiomeGen, cTerrainHeightGenPtr a_HeightGen); + /** Creates a new instance of the generator with the specified parameters. */ + cVillageGen( + int a_Seed, + int a_GridSize, + int a_MaxOffset, + int a_MaxDepth, + int a_MaxSize, + int a_MinDensity, int a_MaxDensity, + cBiomeGenPtr a_BiomeGen, + cTerrainHeightGenPtr a_HeightGen, + const AStringVector & a_PrefabsToLoad + ); protected: class cVillage; // fwd: VillageGen.cpp + typedef std::vector<SharedPtr<cVillagePiecePool> > cVillagePiecePools; /** The noise used for generating random numbers */ cNoise m_Noise; @@ -47,6 +66,9 @@ protected: /** The underlying height generator, used to position the prefabs crossing chunk borders */ cTerrainHeightGenPtr m_HeightGen; + /** All available prefab sets. Each village gets one of these chosen randomly. */ + cVillagePiecePools m_Pools; + // cGridStructGen overrides: virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; diff --git a/src/Globals.h b/src/Globals.h index b787a94da..f0e370d2c 100644 --- a/src/Globals.h +++ b/src/Globals.h @@ -261,14 +261,15 @@ template class SizeChecker<UInt8, 1>; +// Common headers (part 1, without macros): +#include "StringUtils.h" +#include "OSSupport/CriticalSection.h" +#include "OSSupport/Event.h" +#include "OSSupport/File.h" +#include "OSSupport/StackTrace.h" + #ifndef TEST_GLOBALS - // Common headers (part 1, without macros): - #include "StringUtils.h" - #include "OSSupport/CriticalSection.h" - #include "OSSupport/Event.h" - #include "OSSupport/File.h" #include "Logger.h" - #include "OSSupport/StackTrace.h" #else // Logging functions void inline LOGERROR(const char * a_Format, ...) FORMATSTRING(1, 2); @@ -315,6 +316,9 @@ void inline LOG(const char * a_Format, ...) va_end(argList); } +#define LOGINFO LOG +#define LOGWARN LOGWARNING + #endif diff --git a/src/Items/ItemBed.h b/src/Items/ItemBed.h index 77d51d744..15b924a08 100644 --- a/src/Items/ItemBed.h +++ b/src/Items/ItemBed.h @@ -25,10 +25,11 @@ public: } - virtual bool OnPlayerPlace( + virtual bool GetBlocksToPlace( cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, - int a_CursorX, int a_CursorY, int a_CursorZ + int a_CursorX, int a_CursorY, int a_CursorZ, + sSetBlockVector & a_BlocksToPlace ) override { // Can only be placed on the floor: @@ -36,12 +37,10 @@ public: { return false; } - AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); // The "foot" block: - sSetBlockVector blks; NIBBLETYPE BlockMeta = cBlockBedHandler::RotationToMetaData(a_Player.GetYaw()); - blks.emplace_back(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_BED, BlockMeta); + a_BlocksToPlace.emplace_back(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_BED, BlockMeta); // Check if there is empty space for the "head" block: // (Vanilla only allows beds to be placed into air) @@ -50,10 +49,8 @@ public: { return false; } - blks.emplace_back(a_BlockX + Direction.x, a_BlockY, a_BlockZ + Direction.z, E_BLOCK_BED, BlockMeta | 0x08); - - // Place both bed blocks: - return a_Player.PlaceBlocks(blks); + a_BlocksToPlace.emplace_back(a_BlockX + Direction.x, a_BlockY, a_BlockZ + Direction.z, E_BLOCK_BED, BlockMeta | 0x08); + return true; } } ; diff --git a/src/Items/ItemBigFlower.h b/src/Items/ItemBigFlower.h index 4341a1a17..a052485e4 100644 --- a/src/Items/ItemBigFlower.h +++ b/src/Items/ItemBigFlower.h @@ -27,10 +27,11 @@ public: } - virtual bool OnPlayerPlace( + virtual bool GetBlocksToPlace( cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, - int a_CursorX, int a_CursorY, int a_CursorZ + int a_CursorX, int a_CursorY, int a_CursorZ, + sSetBlockVector & a_BlocksToSet ) override { // Can only be placed on the floor: @@ -38,16 +39,14 @@ public: { return false; } - AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); - // Place both blocks atomically: - sSetBlockVector blks; - blks.emplace_back(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_BIG_FLOWER, a_EquippedItem.m_ItemDamage & 0x07); + AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); + a_BlocksToSet.emplace_back(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_BIG_FLOWER, a_EquippedItem.m_ItemDamage & 0x07); if (a_BlockY < cChunkDef::Height - 1) { - blks.emplace_back(a_BlockX, a_BlockY + 1, a_BlockZ, E_BLOCK_BIG_FLOWER, (a_EquippedItem.m_ItemDamage & 0x07) | 0x08); + a_BlocksToSet.emplace_back(a_BlockX, a_BlockY + 1, a_BlockZ, E_BLOCK_BIG_FLOWER, (a_EquippedItem.m_ItemDamage & 0x07) | 0x08); } - return a_Player.PlaceBlocks(blks); + return true; } }; diff --git a/src/Items/ItemChest.h b/src/Items/ItemChest.h index 1d23975cd..3dd112c91 100644 --- a/src/Items/ItemChest.h +++ b/src/Items/ItemChest.h @@ -27,6 +27,8 @@ public: } + /** We need an OnPlayerPlace override because we're processing neighbor chests and changing their metas, + the parent class cannot do that. */ virtual bool OnPlayerPlace( cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, @@ -118,34 +120,32 @@ public: } // for j } // for i - // If there's no chest neighbor, place the single block chest and bail out: + // Get the meta of the placed chest; take existing neighbors into account: BLOCKTYPE ChestBlockType = static_cast<BLOCKTYPE>(m_ItemType); - if (NeighborIdx < 0) + NIBBLETYPE Meta; + auto yaw = a_Player.GetYaw(); + switch (NeighborIdx) { - NIBBLETYPE Meta = cBlockChestHandler::PlayerYawToMetaData(a_Player.GetYaw()); - return a_Player.PlaceBlock(a_BlockX, a_BlockY, a_BlockZ, ChestBlockType, Meta); - } - - // There is a neighbor to which we need to adjust - double yaw = a_Player.GetYaw(); - if ((NeighborIdx == 0) || (NeighborIdx == 2)) - { - // The neighbor is in the X axis, form a X-axis-aligned dblchest: - NIBBLETYPE Meta = ((yaw >= -90) && (yaw < 90)) ? E_META_CHEST_FACING_ZM : E_META_CHEST_FACING_ZP; - - // Place the new chest: - if (!a_Player.PlaceBlock(a_BlockX, a_BlockY, a_BlockZ, ChestBlockType, Meta)) + case 0: + case 2: { - return false; + // The neighbor is in the X axis, form a X-axis-aligned dblchest: + Meta = ((yaw >= -90) && (yaw < 90)) ? E_META_CHEST_FACING_ZM : E_META_CHEST_FACING_ZP; + break; } - - // Adjust the existing chest: - a_World.FastSetBlock(a_BlockX + CrossCoords[NeighborIdx].x, a_BlockY, a_BlockZ + CrossCoords[NeighborIdx].z, ChestBlockType, Meta); - return true; - } - - // The neighbor is in the Z axis, form a Z-axis-aligned dblchest: - NIBBLETYPE Meta = (yaw < 0) ? E_META_CHEST_FACING_XM : E_META_CHEST_FACING_XP; + case 1: + case 3: + { + // The neighbor is in the Z axis, form a Z-axis-aligned dblchest: + Meta = (yaw < 0) ? E_META_CHEST_FACING_XM : E_META_CHEST_FACING_XP; + break; + } + default: + { + Meta = cBlockChestHandler::PlayerYawToMetaData(yaw); + break; + } + } // switch (NeighborIdx) // Place the new chest: if (!a_Player.PlaceBlock(a_BlockX, a_BlockY, a_BlockZ, ChestBlockType, Meta)) @@ -153,8 +153,31 @@ public: return false; } - // Adjust the existing chest: - a_World.FastSetBlock(a_BlockX + CrossCoords[NeighborIdx].x, a_BlockY, a_BlockZ + CrossCoords[NeighborIdx].z, ChestBlockType, Meta); + // Adjust the existing chest, if any: + if (NeighborIdx > 0) + { + a_World.FastSetBlock(a_BlockX + CrossCoords[NeighborIdx].x, a_BlockY, a_BlockZ + CrossCoords[NeighborIdx].z, ChestBlockType, Meta); + } + + // Play the placement sound: + AString PlaceSound = cBlockInfo::GetPlaceSound(ChestBlockType); + float Volume = 1.0f, Pitch = 0.8f; + if (PlaceSound == "dig.metal") + { + Pitch = 1.2f; + PlaceSound = "dig.stone"; + } + else if (PlaceSound == "random.anvil_land") + { + Volume = 0.65f; + } + a_World.BroadcastSoundEffect(PlaceSound, a_BlockX + 0.5, a_BlockY + 0.5, a_BlockZ + 0.5, Volume, Pitch); + + // Remove the "placed" item: + if (a_Player.IsGameModeSurvival()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } return true; } diff --git a/src/Items/ItemDoor.h b/src/Items/ItemDoor.h index ddd3d4e20..e92c567fb 100644 --- a/src/Items/ItemDoor.h +++ b/src/Items/ItemDoor.h @@ -20,10 +20,11 @@ public: } - virtual bool OnPlayerPlace( + virtual bool GetBlocksToPlace( cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, - int a_CursorX, int a_CursorY, int a_CursorZ + int a_CursorX, int a_CursorY, int a_CursorZ, + sSetBlockVector & a_BlocksToSet ) override { // Vanilla only allows door placement while clicking on the top face of the block below the door: @@ -31,7 +32,6 @@ public: { return false; } - AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); // Door (bottom block) can be placed in Y range of [1, 254]: if ((a_BlockY < 1) || (a_BlockY >= cChunkDef::Height - 2)) @@ -107,10 +107,9 @@ public: } // Set the blocks: - sSetBlockVector blks; - blks.emplace_back(a_BlockX, a_BlockY, a_BlockZ, BlockType, LowerBlockMeta); - blks.emplace_back(a_BlockX, a_BlockY + 1, a_BlockZ, BlockType, UpperBlockMeta); - return a_Player.PlaceBlocks(blks); + a_BlocksToSet.emplace_back(a_BlockX, a_BlockY, a_BlockZ, BlockType, LowerBlockMeta); + a_BlocksToSet.emplace_back(a_BlockX, a_BlockY + 1, a_BlockZ, BlockType, UpperBlockMeta); + return true; } diff --git a/src/Items/ItemDye.h b/src/Items/ItemDye.h index 273af826a..c2635bcb6 100644 --- a/src/Items/ItemDye.h +++ b/src/Items/ItemDye.h @@ -27,7 +27,7 @@ public: ) override { // Handle growing the plants: - if (a_Item.m_ItemDamage == E_META_DYE_WHITE) + if ((a_Item.m_ItemDamage == E_META_DYE_WHITE) && (a_BlockFace != BLOCK_FACE_NONE)) { if (a_World->GrowRipePlant(a_BlockX, a_BlockY, a_BlockZ, true)) { diff --git a/src/Items/ItemHandler.cpp b/src/Items/ItemHandler.cpp index b7f89809e..a1fa67152 100644 --- a/src/Items/ItemHandler.cpp +++ b/src/Items/ItemHandler.cpp @@ -367,37 +367,51 @@ bool cItemHandler::OnPlayerPlace( return false; } } - - BLOCKTYPE BlockType; - NIBBLETYPE BlockMeta; - if (!GetPlacementBlockTypeMeta(&a_World, &a_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta)) + + // Get all the blocks to place: + sSetBlockVector blocks; + if (!GetBlocksToPlace(a_World, a_Player, a_EquippedItem, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, blocks)) { // Handler refused the placement, send that information back to the client: + for (const auto & blk: blocks) + { + a_World.SendBlockTo(blk.GetX(), blk.GetY(), blk.GetZ(), &a_Player); + } a_World.SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, &a_Player); a_Player.GetInventory().SendEquippedSlot(); return false; } - if (!a_Player.PlaceBlock(a_BlockX, a_BlockY, a_BlockZ, BlockType, BlockMeta)) + // Try to place the blocks: + if (!a_Player.PlaceBlocks(blocks)) { - // The placement failed, the block has already been re-sent, re-send inventory: + // The placement failed, the blocks have already been re-sent, re-send inventory: a_Player.GetInventory().SendEquippedSlot(); return false; } - AString PlaceSound = cBlockInfo::GetPlaceSound(BlockType); - float Volume = 1.0f, Pitch = 0.8f; - if (PlaceSound == "dig.metal") - { - Pitch = 1.2f; - PlaceSound = "dig.stone"; - } - else if (PlaceSound == "random.anvil_land") + // Play the placement sound for the main block: + for (const auto & blk: blocks) { - Volume = 0.65f; - } - - a_World.BroadcastSoundEffect(PlaceSound, a_BlockX + 0.5, a_BlockY + 0.5, a_BlockZ + 0.5, Volume, Pitch); + // Find the main block by comparing the coords: + if ((blk.GetX() != a_BlockX) || (blk.GetY() != a_BlockY) || (blk.GetZ() != a_BlockZ)) + { + continue; + } + AString PlaceSound = cBlockInfo::GetPlaceSound(blk.m_BlockType); + float Volume = 1.0f, Pitch = 0.8f; + if (PlaceSound == "dig.metal") + { + Pitch = 1.2f; + PlaceSound = "dig.stone"; + } + else if (PlaceSound == "random.anvil_land") + { + Volume = 0.65f; + } + a_World.BroadcastSoundEffect(PlaceSound, a_BlockX + 0.5, a_BlockY + 0.5, a_BlockZ + 0.5, Volume, Pitch); + break; + } // for blk - blocks[] // Remove the "placed" item: if (a_Player.IsGameModeSurvival()) @@ -411,6 +425,27 @@ bool cItemHandler::OnPlayerPlace( +bool cItemHandler::GetBlocksToPlace( + cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, + int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, + int a_CursorX, int a_CursorY, int a_CursorZ, + sSetBlockVector & a_BlocksToSet +) +{ + BLOCKTYPE BlockType; + NIBBLETYPE BlockMeta; + if (!GetPlacementBlockTypeMeta(&a_World, &a_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta)) + { + return false; + } + a_BlocksToSet.emplace_back(a_BlockX, a_BlockY, a_BlockZ, BlockType, BlockMeta); + return true; +} + + + + + bool cItemHandler::OnItemUse( cWorld * a_World, cPlayer * a_Player, cBlockPluginInterface & a_PluginInterface, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace diff --git a/src/Items/ItemHandler.h b/src/Items/ItemHandler.h index ec88aeb99..684b55788 100644 --- a/src/Items/ItemHandler.h +++ b/src/Items/ItemHandler.h @@ -35,8 +35,9 @@ public: /** Called when the player tries to place the item (right mouse button, IsPlaceable() == true). - The default handler uses GetPlacementBlockTypeMeta and places the returned block. - Override this function for advanced behavior such as placing multiple blocks. + The block coords are for the block that has been clicked. + The default handler uses GetBlocksToPlace() and places the returned blocks. + Override if the item needs advanced processing, such as spawning a mob based on the blocks being placed. If the block placement is refused inside this call, it will automatically revert the client-side changes. Returns true if the placement succeeded, false if the placement was aborted for any reason. */ virtual bool OnPlayerPlace( @@ -46,7 +47,20 @@ public: ); - /** Called when the player right-clicks with this item and IsPlaceable() == true, and OnPlace() is not overridden. + /** Called from OnPlayerPlace() to determine the blocks that the current placement operation should set. + The block coords are where the new (main) block should be placed. + The default handler uses GetPlacementBlockTypeMeta() and provides that as the single block at the specified coords. + Returns true if the placement succeeded, false if the placement was aborted for any reason. + If aborted, the server then sends all original blocks in the coords provided in a_BlocksToSet to the client. */ + virtual bool GetBlocksToPlace( + cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, + int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, + int a_CursorX, int a_CursorY, int a_CursorZ, + sSetBlockVector & a_BlocksToSet + ); + + + /** Called when the player right-clicks with this item and IsPlaceable() == true, and OnPlayerPlace() is not overridden. This function should provide the block type and meta for the placed block, or refuse the placement. Returns true to allow placement, false to refuse. */ virtual bool GetPlacementBlockTypeMeta( diff --git a/src/Items/ItemMobHead.h b/src/Items/ItemMobHead.h index 8780f7e4b..9a4044bc0 100644 --- a/src/Items/ItemMobHead.h +++ b/src/Items/ItemMobHead.h @@ -12,9 +12,11 @@ class cItemMobHeadHandler : public cItemHandler { + typedef cItemHandler super; + public: cItemMobHeadHandler(int a_ItemType) : - cItemHandler(a_ItemType) + super(a_ItemType) { } @@ -30,34 +32,36 @@ public: { return true; } - AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); + auto placedX = a_BlockX, placedY = a_BlockY, placedZ = a_BlockZ; + AddFaceDirection(placedY, placedY, placedZ, a_BlockFace); // If the placed head is a wither, try to spawn the wither first: if (a_EquippedItem.m_ItemDamage == E_META_HEAD_WITHER) { - if (TrySpawnWitherAround(a_World, a_Player, a_BlockX, a_BlockY, a_BlockZ)) + if (TrySpawnWitherAround(a_World, a_Player, placedX, placedY, placedZ)) { return true; } // Wither not created, proceed with regular head placement } - return PlaceRegularHead(a_World, a_Player, a_EquippedItem, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); + cItem itemCopy(a_EquippedItem); // Make a copy in case this is the player's last head item and OnPlayerPlace removes it + if (!super::OnPlayerPlace(a_World, a_Player, a_EquippedItem, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ)) + { + return false; + } + RegularHeadPlaced(a_World, a_Player, itemCopy, placedX, placedY, placedZ, a_BlockFace); + return true; } - /** Places a regular head block with no mob spawning checking. */ - bool PlaceRegularHead( + /** Called after placing a regular head block with no mob spawning. + Adjusts the mob head entity based on the equipped item's data. */ + void RegularHeadPlaced( cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace ) { - // Place the block: - if (!a_Player.PlaceBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_HEAD, BlockFaceToBlockMeta(a_BlockFace))) - { - return false; - } - // Use a callback to set the properties of the mob head block entity: class cCallback : public cBlockEntityCallback { @@ -71,7 +75,7 @@ public: { return false; } - cMobHeadEntity * MobHeadEntity = static_cast<cMobHeadEntity *>(a_BlockEntity); + auto MobHeadEntity = static_cast<cMobHeadEntity *>(a_BlockEntity); int Rotation = 0; if (m_BlockMeta == 1) @@ -94,7 +98,6 @@ public: }; cCallback Callback(a_Player, static_cast<eMobHeadType>(a_EquippedItem.m_ItemDamage), static_cast<NIBBLETYPE>(a_BlockFace)); a_World.DoWithBlockEntityAt(a_BlockX, a_BlockY, a_BlockZ, Callback); - return true; } @@ -340,7 +343,7 @@ public: ) override { a_BlockType = E_BLOCK_HEAD; - a_BlockMeta = (NIBBLETYPE)(a_Player->GetEquippedItem().m_ItemDamage & 0x0f); + a_BlockMeta = BlockFaceToBlockMeta(a_BlockFace); return true; } } ; diff --git a/src/LoggerListeners.cpp b/src/LoggerListeners.cpp index 132751e8e..91964c57e 100644 --- a/src/LoggerListeners.cpp +++ b/src/LoggerListeners.cpp @@ -299,15 +299,15 @@ cLogger::cListener * MakeConsoleListener(bool a_IsService) cFileListener::cFileListener(void) { cFile::CreateFolder(FILE_IO_PREFIX + AString("logs")); - AString FileName; - auto time = std::chrono::system_clock::now(); - FileName = Printf( - "%s%sLOG_%d.txt", - FILE_IO_PREFIX, - "logs/", - std::chrono::duration_cast<std::chrono::duration<int, std::milli>>(time.time_since_epoch()).count() + m_File.Open( + FILE_IO_PREFIX + Printf( + "logs/LOG_%d.txt", + std::chrono::duration_cast<std::chrono::duration<int, std::ratio<1>>>( + std::chrono::system_clock::now().time_since_epoch() + ).count() + ), + cFile::fmAppend ); - m_File.Open(FileName, cFile::fmAppend); } @@ -326,7 +326,7 @@ void cFileListener::Log(AString a_Message, cLogger::eLogLevel a_LogLevel) } case cLogger::llInfo: { - LogLevelPrefix = "info "; + LogLevelPrefix = "Info "; break; } case cLogger::llWarning: diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 8d71c54e8..cb4edb951 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -1073,9 +1073,9 @@ cMonster * cMonster::NewMonsterFromType(eMonsterType a_MobType) case mtHorse: { // Horses take a type (species), a colour, and a style (dots, stripes, etc.) - int HorseType = Random.NextInt(7); - int HorseColor = Random.NextInt(6); - int HorseStyle = Random.NextInt(6); + int HorseType = Random.NextInt(8); + int HorseColor = Random.NextInt(7); + int HorseStyle = Random.NextInt(5); int HorseTameTimes = Random.NextInt(6) + 1; if ((HorseType == 5) || (HorseType == 6) || (HorseType == 7)) diff --git a/src/NetherPortalScanner.cpp b/src/NetherPortalScanner.cpp index fe563509d..cebf09ceb 100644 --- a/src/NetherPortalScanner.cpp +++ b/src/NetherPortalScanner.cpp @@ -49,6 +49,12 @@ void cNetherPortalScanner::OnChunkAvailable(int a_ChunkX, int a_ChunkZ) if (blocks[i] == E_BLOCK_NETHER_PORTAL) { Vector3i Coordinate = cChunkDef::IndexToCoordinate(i); + if (Coordinate.y >= m_MaxY) + { + // This is above the map, don't consider it. + continue; + } + Vector3d PortalLoc = Vector3d(Coordinate.x + a_ChunkX * cChunkDef::Width, Coordinate.y, Coordinate.z + a_ChunkZ * cChunkDef::Width); if (!m_FoundPortal) { @@ -109,9 +115,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); @@ -284,7 +290,7 @@ void cNetherPortalScanner::OnDisabled(void) } LOGD("Placing player at {%f, %f, %f}", Position.x, Position.y, Position.z); - m_Entity->ScheduleMoveToWorld(m_World, Position); + m_Entity->ScheduleMoveToWorld(m_World, Position, true); delete this; } diff --git a/src/NetherPortalScanner.h b/src/NetherPortalScanner.h index 89ffd7d0e..393859b4d 100644 --- a/src/NetherPortalScanner.h +++ b/src/NetherPortalScanner.h @@ -40,7 +40,7 @@ private: static const int SearchSolidBaseWidth = 3; /** Where to place the player out from the face and across the face */ - const double OutOffset = 1.5; + const double OutOffset = 0.5; const double AcrossOffset = 0.5; /** Builds a portal. */ diff --git a/src/OSSupport/NetworkInterfaceEnum.cpp b/src/OSSupport/NetworkInterfaceEnum.cpp index c4af1e93c..d74565e07 100644 --- a/src/OSSupport/NetworkInterfaceEnum.cpp +++ b/src/OSSupport/NetworkInterfaceEnum.cpp @@ -6,6 +6,8 @@ #include "Globals.h" #include "Network.h" #include "event2/util.h" +#include "../SelfTests.h" + #ifdef _WIN32 #include <IPHlpApi.h> #pragma comment(lib, "IPHLPAPI.lib") @@ -27,13 +29,18 @@ static class cEnumIPAddressTest public: cEnumIPAddressTest(void) { - printf("Enumerating all IP addresses...\n"); + cSelfTests::Get().Register(std::function<void(void)>(&Test), "Network IP enumeration"); + } + + static void Test(void) + { + LOG("Enumerating all IP addresses..."); auto IPs = cNetwork::EnumLocalIPAddresses(); for (auto & ip: IPs) { - printf(" %s\n", ip.c_str()); + LOG(" %s", ip.c_str()); } - printf("Done.\n"); + LOG("Done."); } } g_EnumIPAddressTest; diff --git a/src/Protocol/ChunkDataSerializer.cpp b/src/Protocol/ChunkDataSerializer.cpp index 2b9c06779..37fbae0e5 100644 --- a/src/Protocol/ChunkDataSerializer.cpp +++ b/src/Protocol/ChunkDataSerializer.cpp @@ -43,7 +43,6 @@ const AString & cChunkDataSerializer::Serialize(int a_Version, int a_ChunkX, int AString data; switch (a_Version) { - case RELEASE_1_2_5: Serialize29(data); break; case RELEASE_1_3_2: Serialize39(data); break; case RELEASE_1_8_0: Serialize47(data, a_ChunkX, a_ChunkZ); break; // TODO: Other protocol versions may serialize the data differently; implement here @@ -65,65 +64,6 @@ const AString & cChunkDataSerializer::Serialize(int a_Version, int a_ChunkX, int - -void cChunkDataSerializer::Serialize29(AString & a_Data) -{ - // TODO: Do not copy data and then compress it; rather, compress partial blocks of data (zlib can stream) - - const int BiomeDataSize = cChunkDef::Width * cChunkDef::Width; - const int MetadataOffset = sizeof(m_BlockTypes); - const int BlockLightOffset = MetadataOffset + sizeof(m_BlockMetas); - const int SkyLightOffset = BlockLightOffset + sizeof(m_BlockLight); - const int BiomeOffset = SkyLightOffset + sizeof(m_BlockSkyLight); - const int DataSize = BiomeOffset + BiomeDataSize; - - // Temporary buffer for the composed data: - char AllData [DataSize]; - - memcpy(AllData, m_BlockTypes, sizeof(m_BlockTypes)); - memcpy(AllData + MetadataOffset, m_BlockMetas, sizeof(m_BlockMetas)); - memcpy(AllData + BlockLightOffset, m_BlockLight, sizeof(m_BlockLight)); - memcpy(AllData + SkyLightOffset, m_BlockSkyLight, sizeof(m_BlockSkyLight)); - memcpy(AllData + BiomeOffset, m_BiomeData, BiomeDataSize); - - // Compress the data: - // In order not to use allocation, use a fixed-size buffer, with the size - // that uses the same calculation as compressBound(): - const uLongf CompressedMaxSize = DataSize + (DataSize >> 12) + (DataSize >> 14) + (DataSize >> 25) + 16; - char CompressedBlockData[CompressedMaxSize]; - - uLongf CompressedSize = compressBound(DataSize); - - // Run-time check that our compile-time guess about CompressedMaxSize was enough: - ASSERT(CompressedSize <= CompressedMaxSize); - - compress2((Bytef*)CompressedBlockData, &CompressedSize, (const Bytef*)AllData, sizeof(AllData), Z_DEFAULT_COMPRESSION); - - // Now put all those data into a_Data: - - // "Ground-up continuous", or rather, "biome data present" flag: - a_Data.push_back('\x01'); - - // Two bitmaps; we're aways sending the full chunk with no additional data, so the bitmaps are 0xffff and 0, respectively - // Also, no endian flipping is needed because of the const values - unsigned short BitMap1 = 0xffff; - unsigned short BitMap2 = 0; - a_Data.append((const char *)&BitMap1, sizeof(short)); - a_Data.append((const char *)&BitMap2, sizeof(short)); - - UInt32 CompressedSizeBE = htonl((UInt32)CompressedSize); - a_Data.append((const char *)&CompressedSizeBE, sizeof(CompressedSizeBE)); - - Int32 UnusedInt32 = 0; - a_Data.append((const char *)&UnusedInt32, sizeof(UnusedInt32)); - - a_Data.append(CompressedBlockData, CompressedSize); -} - - - - - void cChunkDataSerializer::Serialize39(AString & a_Data) { // TODO: Do not copy data and then compress it; rather, compress partial blocks of data (zlib can stream) diff --git a/src/Protocol/ChunkDataSerializer.h b/src/Protocol/ChunkDataSerializer.h index a082ef3d8..6acc1544b 100644 --- a/src/Protocol/ChunkDataSerializer.h +++ b/src/Protocol/ChunkDataSerializer.h @@ -22,14 +22,12 @@ protected: Serializations m_Serializations; - void Serialize29(AString & a_Data); // Release 1.2.4 and 1.2.5 void Serialize39(AString & a_Data); // Release 1.3.1 to 1.7.10 void Serialize47(AString & a_Data, int a_ChunkX, int a_ChunkZ); // Release 1.8 public: enum { - RELEASE_1_2_5 = 29, RELEASE_1_3_2 = 39, RELEASE_1_8_0 = 47, } ; diff --git a/src/Protocol/Protocol17x.cpp b/src/Protocol/Protocol17x.cpp index 3d96071b5..c5c0f4a03 100644 --- a/src/Protocol/Protocol17x.cpp +++ b/src/Protocol/Protocol17x.cpp @@ -2374,7 +2374,7 @@ void cProtocol172::HandlePacketWindowClick(cByteBuffer & a_ByteBuffer) case 0x0206: Action = caNumber7; break; case 0x0207: Action = caNumber8; break; case 0x0208: Action = caNumber9; break; - case 0x0300: Action = caMiddleClick; break; + case 0x0302: Action = caMiddleClick; break; case 0x0400: Action = (SlotNum == SLOT_NUM_OUTSIDE) ? caLeftClickOutsideHoldNothing : caDropKey; break; case 0x0401: Action = (SlotNum == SLOT_NUM_OUTSIDE) ? caRightClickOutsideHoldNothing : caCtrlDropKey; break; case 0x0500: Action = (SlotNum == SLOT_NUM_OUTSIDE) ? caLeftPaintBegin : caUnknown; break; diff --git a/src/Protocol/Protocol18x.cpp b/src/Protocol/Protocol18x.cpp index d9449283b..d5dd328a4 100644 --- a/src/Protocol/Protocol18x.cpp +++ b/src/Protocol/Protocol18x.cpp @@ -1921,12 +1921,11 @@ void cProtocol180::AddReceivedData(const char * a_Data, size_t a_Size) { // Decompress the data: AString CompressedData; - if (!m_ReceivedData.ReadString(CompressedData, CompressedSize)) + if (!m_ReceivedData.ReadString(CompressedData, CompressedSize) || (InflateString(CompressedData.data(), CompressedSize, UncompressedData) != Z_OK)) { m_Client->Kick("Compression failure"); return; } - InflateString(CompressedData.data(), CompressedSize, UncompressedData); PacketLen = UncompressedData.size(); } else @@ -2693,7 +2692,7 @@ void cProtocol180::HandlePacketWindowClick(cByteBuffer & a_ByteBuffer) case 0x0206: Action = caNumber7; break; case 0x0207: Action = caNumber8; break; case 0x0208: Action = caNumber9; break; - case 0x0300: Action = caMiddleClick; break; + case 0x0302: Action = caMiddleClick; break; case 0x0400: Action = (SlotNum == SLOT_NUM_OUTSIDE) ? caLeftClickOutsideHoldNothing : caDropKey; break; case 0x0401: Action = (SlotNum == SLOT_NUM_OUTSIDE) ? caRightClickOutsideHoldNothing : caCtrlDropKey; break; case 0x0500: Action = (SlotNum == SLOT_NUM_OUTSIDE) ? caLeftPaintBegin : caUnknown; break; diff --git a/src/Root.cpp b/src/Root.cpp index 8d344ee65..349e85315 100644 --- a/src/Root.cpp +++ b/src/Root.cpp @@ -21,6 +21,7 @@ #include "IniFile.h" #include "SettingsRepositoryInterface.h" #include "OverridesSettingsRepository.h" +#include "SelfTests.h" #ifdef _WIN32 #include <conio.h> @@ -111,11 +112,16 @@ void cRoot::Start(std::unique_ptr<cSettingsRepositoryInterface> overridesRepo) cLogger::GetInstance().AttachListener(consoleLogListener); cLogger::GetInstance().AttachListener(fileLogListener); - LOG("--- Started Log ---\n"); + LOG("--- Started Log ---"); #ifdef BUILD_ID - LOG("MCServer " BUILD_SERIES_NAME " build id: " BUILD_ID); - LOG("from commit id: " BUILD_COMMIT_ID " built at: " BUILD_DATETIME); + LOG("MCServer " BUILD_SERIES_NAME " build id: " BUILD_ID); + LOG("from commit id: " BUILD_COMMIT_ID " built at: " BUILD_DATETIME); + #endif + + // Run the self-tests registered previously via cSelfTests::Register(): + #ifdef SELF_TEST + cSelfTests::ExecuteAll(); #endif cDeadlockDetect dd; @@ -255,7 +261,7 @@ void cRoot::Start(std::unique_ptr<cSettingsRepositoryInterface> overridesRepo) delete m_FurnaceRecipe; m_FurnaceRecipe = nullptr; delete m_CraftingRecipes; m_CraftingRecipes = nullptr; - LOGD("Unloading worlds..."); + LOG("Unloading worlds..."); UnloadWorlds(); LOGD("Stopping plugin manager..."); @@ -336,7 +342,7 @@ void cRoot::LoadWorlds(cSettingsRepositoryInterface & a_Settings) -cWorld * cRoot::CreateAndInitializeWorld(const AString & a_WorldName, eDimension a_Dimension, const AString & a_OverworldName) +cWorld * cRoot::CreateAndInitializeWorld(const AString & a_WorldName, eDimension a_Dimension, const AString & a_OverworldName, bool a_InitSpawn) { cWorld * World = m_WorldsByName[a_WorldName]; if (World != nullptr) @@ -347,7 +353,10 @@ cWorld * cRoot::CreateAndInitializeWorld(const AString & a_WorldName, eDimension cWorld * NewWorld = new cWorld(a_WorldName.c_str(), a_Dimension, a_OverworldName); m_WorldsByName[a_WorldName] = NewWorld; NewWorld->Start(); - NewWorld->InitializeSpawn(); + if (a_InitSpawn) + { + NewWorld->InitializeSpawn(); + } m_PluginManager->CallHookWorldStarted(*NewWorld); return NewWorld; } @@ -869,3 +878,8 @@ int cRoot::GetFurnaceFuelBurnTime(const cItem & a_Fuel) cFurnaceRecipe * FR = Get()->GetFurnaceRecipe(); return FR->GetBurnTime(a_Fuel); } + + + + + diff --git a/src/Root.h b/src/Root.h index 81551a503..0eae21384 100644 --- a/src/Root.h +++ b/src/Root.h @@ -38,7 +38,7 @@ namespace Json -/// The root of the object hierarchy +/** The root of the object hierarchy */ // tolua_begin class cRoot { @@ -69,7 +69,7 @@ public: The dimension parameter is used to create a world with a specific dimension a_OverworldName should be set for non-overworld dimensions if one wishes that world to link back to an overworld via portals */ - cWorld * CreateAndInitializeWorld(const AString & a_WorldName, eDimension a_Dimension = dimOverworld, const AString & a_OverworldName = ""); + cWorld * CreateAndInitializeWorld(const AString & a_WorldName, eDimension a_Dimension = dimOverworld, const AString & a_OverworldName = "", bool a_InitSpawn = true); /** Returns the up time of the server in seconds */ int GetServerUpTime(void) @@ -217,6 +217,7 @@ private: bool m_bRestart; + void LoadGlobalSettings(); /// Loads the worlds from settings.ini, creates the worldmap @@ -238,3 +239,8 @@ private: static void InputThread(cRoot & a_Params); }; // tolua_export + + + + + diff --git a/src/SelfTests.cpp b/src/SelfTests.cpp new file mode 100644 index 000000000..7e35e675e --- /dev/null +++ b/src/SelfTests.cpp @@ -0,0 +1,71 @@ + +// SelfTests.h + +// Implements the cSelfTests class representing the singleton used for registering self-tests +// This class is only declared if SELF_TEST macro is defined. + +#include "Globals.h" +#include "SelfTests.h" + + + + + +#ifdef SELF_TEST + cSelfTests::cSelfTests(void): + m_AllowRegistering(true) + { + } + + + + + + cSelfTests & cSelfTests::Get(void) + { + static cSelfTests singleton; + return singleton; + } + + + + + + void cSelfTests::Register(cSelfTests::SelfTestFunction a_FnToExecute, const AString & a_TestName) + { + ASSERT(Get().m_AllowRegistering); + Get().m_SelfTests.push_back(std::make_pair(a_FnToExecute, a_TestName)); + } + + + + + + void cSelfTests::ExecuteAll(void) + { + Get().m_AllowRegistering = false; + LOG("--- Performing self-tests ---"); + for (auto & test: Get().m_SelfTests) + { + LOG("Performing self-test: %s", test.second.c_str()); + try + { + test.first(); + } + catch (const std::exception & exc) + { + LOGWARNING("Exception in test %s: %s", test.second.c_str(), exc.what()); + } + catch (...) + { + LOGWARNING("Unknown exception in test %s", test.second.c_str()); + } + } // for test - m_SelfTests[] + LOG("--- Self-tests finished ---"); + } + +#endif // SELF_TEST + + + + diff --git a/src/SelfTests.h b/src/SelfTests.h new file mode 100644 index 000000000..03a3b5faa --- /dev/null +++ b/src/SelfTests.h @@ -0,0 +1,51 @@ + +// SelfTests.h + +// Declares the cSelfTests class representing the singleton used for registering self-tests +// This class is only declared if SELF_TEST macro is defined. + + + + + +#pragma once + + + + + +#ifdef SELF_TEST + /** Singleton containing registered self-tests. + Used to schedule self-tests to run after the logging framework is initialized (#2228). */ + class cSelfTests + { + public: + /** Returns the singleton instance of this class. */ + static cSelfTests & Get(void); + + // typedef void (* SelfTestFunction)(void); + typedef std::function<void(void)> SelfTestFunction; + + /** Registers a self-test to be executed once the logging framework is initialized. */ + static void Register(SelfTestFunction a_FnToExecute, const AString & a_TestName); + + /** Executes all the registered self-tests. */ + static void ExecuteAll(void); + + protected: + typedef std::vector<std::pair<SelfTestFunction, AString>> SelfTestFunctions; + + /** Functions (registered self-tests) to call once the logging framework is initialized. */ + SelfTestFunctions m_SelfTests; + + /** If true, tests may be registered. Set to false once the tests are executed, to detect tests that are registered too late. */ + bool m_AllowRegistering; + + + cSelfTests(void); + }; +#endif // SELF_TEST + + + + diff --git a/src/World.cpp b/src/World.cpp index 0ae115001..a1e392fd1 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -465,6 +465,10 @@ void cWorld::Start(void) m_bCommandBlocksEnabled = IniFile.GetValueSetB("Mechanics", "CommandBlocksEnabled", false); m_bEnabledPVP = IniFile.GetValueSetB("Mechanics", "PVPEnabled", true); m_bUseChatPrefixes = IniFile.GetValueSetB("Mechanics", "UseChatPrefixes", true); + m_MinNetherPortalWidth = IniFile.GetValueSetI("Mechanics", "MinNetherPortalWidth", 2); + m_MaxNetherPortalWidth = IniFile.GetValueSetI("Mechanics", "MaxNetherPortalWidth", 21); + m_MinNetherPortalHeight = IniFile.GetValueSetI("Mechanics", "MinNetherPortalHeight", 3); + m_MaxNetherPortalHeight = IniFile.GetValueSetI("Mechanics", "MaxNetherPortalHeight", 21); m_VillagersShouldHarvestCrops = IniFile.GetValueSetB("Monsters", "VillagersShouldHarvestCrops", true); m_IsDaylightCycleEnabled = IniFile.GetValueSetB("General", "IsDaylightCycleEnabled", true); int GameMode = IniFile.GetValueSetI("General", "Gamemode", (int)m_GameMode); @@ -3080,7 +3084,11 @@ void cWorld::QueueTask(cTaskPtr a_Task) } - +void cWorld::ScheduleTask(int a_DelayTicks, std::function<void (cWorld&)> a_Func) +{ + cTaskLambda task(a_Func); + ScheduleTask(a_DelayTicks, static_cast<cTaskPtr>(std::make_shared<cTaskLambda>(task))); +} void cWorld::ScheduleTask(int a_DelayTicks, cTaskPtr a_Task) @@ -3583,8 +3591,10 @@ void cWorld::cTaskSendBlockToAllPlayers::Run(cWorld & a_World) a_World.ForEachPlayer(PlayerCallback); } - - +void cWorld::cTaskLambda::Run(cWorld & a_World) +{ + m_func(a_World); +} //////////////////////////////////////////////////////////////////////////////// diff --git a/src/World.h b/src/World.h index 078a25562..aeab7bfa5 100644 --- a/src/World.h +++ b/src/World.h @@ -103,8 +103,12 @@ public: class cTask { public: + cTask(const cTask & other) = default; virtual ~cTask() {} virtual void Run(cWorld & a_World) = 0; + + protected: + cTask() {} } ; typedef SharedPtr<cTask> cTaskPtr; @@ -142,6 +146,21 @@ public: std::vector<Vector3i> m_SendQueue; }; + class cTaskLambda : + public cTask + { + + public: + cTaskLambda(std::function<void(cWorld&)> a_Func) : + m_func(a_Func) + { } + + protected: + virtual void Run(cWorld & a_World) override; + + std::function<void(cWorld&)> m_func; + }; + static const char * GetClassStatic(void) // Needed for ManualBindings's ForEach templates { @@ -694,6 +713,18 @@ public: AString GetLinkedOverworldName(void) const { return m_LinkedOverworldName; } void SetLinkedOverworldName(const AString & a_Name) { m_LinkedOverworldName = a_Name; } + /** Returns or sets the minumim or maximum netherportal width */ + virtual int GetMinNetherPortalWidth(void) const override { return m_MinNetherPortalWidth; } + virtual int GetMaxNetherPortalWidth(void) const override { return m_MaxNetherPortalWidth; } + virtual void SetMinNetherPortalWidth(int a_NewMinWidth) override { m_MinNetherPortalWidth = a_NewMinWidth; } + virtual void SetMaxNetherPortalWidth(int a_NewMaxWidth) override { m_MaxNetherPortalWidth = a_NewMaxWidth; } + + /** Returns or sets the minumim or maximum netherportal height */ + virtual int GetMinNetherPortalHeight(void) const override { return m_MinNetherPortalHeight; } + virtual int GetMaxNetherPortalHeight(void) const override { return m_MaxNetherPortalHeight; } + virtual void SetMinNetherPortalHeight(int a_NewMinHeight) override { m_MinNetherPortalHeight = a_NewMinHeight; } + virtual void SetMaxNetherPortalHeight(int a_NewMaxHeight) override { m_MaxNetherPortalHeight = a_NewMaxHeight; } + // tolua_end /** Saves all chunks immediately. Dangerous interface, may deadlock, use QueueSaveAllChunks() instead */ @@ -705,6 +736,9 @@ public: /** Queues a task onto the tick thread. The task object will be deleted once the task is finished */ void QueueTask(cTaskPtr a_Task); // Exported in ManualBindings.cpp + /** Queues a lambda task onto the tick thread, with the specified delay. */ + void ScheduleTask(int a_DelayTicks, std::function<void(cWorld&)> a_Func); + /** Queues a task onto the tick thread, with the specified delay. */ void ScheduleTask(int a_DelayTicks, cTaskPtr a_Task); @@ -920,6 +954,12 @@ private: double m_SpawnY; double m_SpawnZ; + // Variables defining the minimum and maximum size for a nether portal + int m_MinNetherPortalWidth; + int m_MaxNetherPortalWidth; + int m_MinNetherPortalHeight; + int m_MaxNetherPortalHeight; + bool m_BroadcastDeathMessages; bool m_BroadcastAchievementMessages; diff --git a/src/WorldStorage/CMakeLists.txt b/src/WorldStorage/CMakeLists.txt index 074958191..017d85f27 100644 --- a/src/WorldStorage/CMakeLists.txt +++ b/src/WorldStorage/CMakeLists.txt @@ -14,7 +14,8 @@ SET (SRCS ScoreboardSerializer.cpp StatSerializer.cpp WSSAnvil.cpp - WorldStorage.cpp) + WorldStorage.cpp +) SET (HDRS EnchantmentSerializer.h @@ -26,7 +27,8 @@ SET (HDRS ScoreboardSerializer.h StatSerializer.h WSSAnvil.h - WorldStorage.h) + WorldStorage.h +) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set_source_files_properties(EnchantmentSerializer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") diff --git a/src/WorldStorage/SchematicFileSerializer.cpp b/src/WorldStorage/SchematicFileSerializer.cpp index fb881e290..3e9ed5bef 100644 --- a/src/WorldStorage/SchematicFileSerializer.cpp +++ b/src/WorldStorage/SchematicFileSerializer.cpp @@ -9,6 +9,7 @@ #include "FastNBT.h" #include "SchematicFileSerializer.h" #include "../StringCompression.h" +#include "../SelfTests.h" @@ -21,6 +22,11 @@ static class cSchematicStringSelfTest public: cSchematicStringSelfTest(void) { + cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&Test), "Schematic-to-string serialization"); + } + + static void Test(void) + { cBlockArea ba; ba.Create(21, 256, 21); ba.RelLine(0, 0, 0, 9, 8, 7, cBlockArea::baTypes | cBlockArea::baMetas, E_BLOCK_WOODEN_STAIRS, 1); @@ -232,27 +238,27 @@ bool cSchematicFileSerializer::LoadFromSchematicNBT(cBlockArea & a_BlockArea, cP } // Copy the block types and metas: - size_t NumBytes = a_BlockArea.GetBlockCount(); - if (a_NBT.GetDataLength(TBlockTypes) < NumBytes) + size_t NumTypeBytes = a_BlockArea.GetBlockCount(); + if (a_NBT.GetDataLength(TBlockTypes) < NumTypeBytes) { - LOG("BlockTypes truncated in the schematic file (exp %d, got %d bytes). Loading partial.", - (int)NumBytes, (int)a_NBT.GetDataLength(TBlockTypes) + LOG("BlockTypes truncated in the schematic file (exp %u, got %u bytes). Loading partial.", + static_cast<unsigned>(NumTypeBytes), static_cast<unsigned>(a_NBT.GetDataLength(TBlockTypes)) ); - NumBytes = a_NBT.GetDataLength(TBlockTypes); + NumTypeBytes = a_NBT.GetDataLength(TBlockTypes); } - memcpy(a_BlockArea.m_BlockTypes, a_NBT.GetData(TBlockTypes), NumBytes); + memcpy(a_BlockArea.m_BlockTypes, a_NBT.GetData(TBlockTypes), NumTypeBytes); if (AreMetasPresent) { - size_t NumBytes = a_BlockArea.GetBlockCount(); - if (a_NBT.GetDataLength(TBlockMetas) < NumBytes) + size_t NumMetaBytes = a_BlockArea.GetBlockCount(); + if (a_NBT.GetDataLength(TBlockMetas) < NumMetaBytes) { - LOG("BlockMetas truncated in the schematic file (exp %d, got %d bytes). Loading partial.", - (int)NumBytes, (int)a_NBT.GetDataLength(TBlockMetas) + LOG("BlockMetas truncated in the schematic file (exp %u, got %u bytes). Loading partial.", + static_cast<unsigned>(NumMetaBytes), static_cast<unsigned>(a_NBT.GetDataLength(TBlockMetas)) ); - NumBytes = a_NBT.GetDataLength(TBlockMetas); + NumMetaBytes = a_NBT.GetDataLength(TBlockMetas); } - memcpy(a_BlockArea.m_BlockMetas, a_NBT.GetData(TBlockMetas), NumBytes); + memcpy(a_BlockArea.m_BlockMetas, a_NBT.GetData(TBlockMetas), NumMetaBytes); } return true; diff --git a/src/WorldStorage/WorldStorage.cpp b/src/WorldStorage/WorldStorage.cpp index c7a295175..7e6cadb7e 100644 --- a/src/WorldStorage/WorldStorage.cpp +++ b/src/WorldStorage/WorldStorage.cpp @@ -84,7 +84,7 @@ void cWorldStorage::Stop(void) void cWorldStorage::WaitForFinish(void) { - LOG("Waiting for the world storage to finish saving"); + LOGD("Waiting for the world storage to finish saving"); { m_LoadQueue.Clear(); @@ -97,7 +97,7 @@ void cWorldStorage::WaitForFinish(void) m_ShouldTerminate = true; m_Event.Set(); // Wake up the thread if waiting super::Wait(); - LOG("World storage thread finished"); + LOGD("World storage thread finished"); } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 265640cc8..4db898fdb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,3 +6,4 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_subdirectory(ChunkData) add_subdirectory(Network) +add_subdirectory(LoadablePieces) diff --git a/tests/LoadablePieces/Bindings.h b/tests/LoadablePieces/Bindings.h new file mode 100644 index 000000000..490830ac3 --- /dev/null +++ b/tests/LoadablePieces/Bindings.h @@ -0,0 +1,15 @@ + +// Bindings.h + +// Dummy include file needed for LuaState to compile successfully + + + + +struct lua_State; + +int tolua_AllToLua_open(lua_State * a_LuaState); + + + + diff --git a/tests/LoadablePieces/CMakeLists.txt b/tests/LoadablePieces/CMakeLists.txt new file mode 100644 index 000000000..4b3c0ab13 --- /dev/null +++ b/tests/LoadablePieces/CMakeLists.txt @@ -0,0 +1,96 @@ +cmake_minimum_required (VERSION 2.6) + +enable_testing() + +include_directories(${CMAKE_SOURCE_DIR}/src/) +include_directories(${CMAKE_SOURCE_DIR}/lib/) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +add_definitions(-DTEST_GLOBALS=1) + +set (SHARED_SRCS + ${CMAKE_SOURCE_DIR}/src/BiomeDef.cpp + ${CMAKE_SOURCE_DIR}/src/BlockArea.cpp + ${CMAKE_SOURCE_DIR}/src/Cuboid.cpp + ${CMAKE_SOURCE_DIR}/src/ChunkData.cpp + ${CMAKE_SOURCE_DIR}/src/StringCompression.cpp + ${CMAKE_SOURCE_DIR}/src/StringUtils.cpp + + ${CMAKE_SOURCE_DIR}/src/Bindings/LuaState.cpp + + ${CMAKE_SOURCE_DIR}/src/Generating/ChunkDesc.cpp + ${CMAKE_SOURCE_DIR}/src/Generating/PieceGenerator.cpp + ${CMAKE_SOURCE_DIR}/src/Generating/Prefab.cpp + ${CMAKE_SOURCE_DIR}/src/Generating/PrefabPiecePool.cpp + + ${CMAKE_SOURCE_DIR}/src/Noise/Noise.cpp + + ${CMAKE_SOURCE_DIR}/src/OSSupport/CriticalSection.cpp + ${CMAKE_SOURCE_DIR}/src/OSSupport/Event.cpp + ${CMAKE_SOURCE_DIR}/src/OSSupport/File.cpp + ${CMAKE_SOURCE_DIR}/src/OSSupport/GZipFile.cpp + ${CMAKE_SOURCE_DIR}/src/OSSupport/StackTrace.cpp + + ${CMAKE_SOURCE_DIR}/src/WorldStorage/FastNBT.cpp + ${CMAKE_SOURCE_DIR}/src/WorldStorage/SchematicFileSerializer.cpp +) + +set (SHARED_HDRS + ${CMAKE_SOURCE_DIR}/src/BiomeDef.h + ${CMAKE_SOURCE_DIR}/src/BlockArea.h + ${CMAKE_SOURCE_DIR}/src/Cuboid.h + ${CMAKE_SOURCE_DIR}/src/ChunkData.h + ${CMAKE_SOURCE_DIR}/src/Globals.h + ${CMAKE_SOURCE_DIR}/src/StringCompression.h + ${CMAKE_SOURCE_DIR}/src/StringUtils.h + + ${CMAKE_SOURCE_DIR}/src/Bindings/LuaState.h + + ${CMAKE_SOURCE_DIR}/src/Generating/ChunkDesc.h + ${CMAKE_SOURCE_DIR}/src/Generating/PieceGenerator.h + ${CMAKE_SOURCE_DIR}/src/Generating/Prefab.h + ${CMAKE_SOURCE_DIR}/src/Generating/PrefabPiecePool.h + + ${CMAKE_SOURCE_DIR}/src/Noise/Noise.h + + ${CMAKE_SOURCE_DIR}/src/OSSupport/CriticalSection.h + ${CMAKE_SOURCE_DIR}/src/OSSupport/Event.h + ${CMAKE_SOURCE_DIR}/src/OSSupport/File.h + ${CMAKE_SOURCE_DIR}/src/OSSupport/GZipFile.h + ${CMAKE_SOURCE_DIR}/src/OSSupport/StackTrace.h + + ${CMAKE_SOURCE_DIR}/src/WorldStorage/FastNBT.h + ${CMAKE_SOURCE_DIR}/src/WorldStorage/SchematicFileSerializer.h +) + +set (SRCS + LoadablePieces.cpp + Stubs.cpp + LuaState_Typedefs.inc + LuaState_Declaration.inc + Bindings.h +) + + +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + add_flags_cxx("-Wno-error=conversion -Wno-error=old-style-cast") + add_flags_cxx("-Wno-error=global-constructors") + add_flags_cxx("-Wno-error=switch-enum") +endif() + + +if (MSVC) + # Add the MSVC-specific LeakFinder sources: + list (APPEND SHARED_SRCS ${CMAKE_SOURCE_DIR}/src/LeakFinder.cpp ${CMAKE_SOURCE_DIR}/src/StackWalker.cpp) + list (APPEND SHARED_HDRS ${CMAKE_SOURCE_DIR}/src/LeakFinder.h ${CMAKE_SOURCE_DIR}/src/StackWalker.h) +endif() + +source_group("Shared" FILES ${SHARED_SRCS} ${SHARED_HDRS}) +source_group("Sources" FILES ${SRCS}) +add_executable(LoadablePieces ${SRCS} ${SHARED_SRCS} ${SHARED_HDRS}) +target_link_libraries(LoadablePieces tolualib zlib) +add_test(NAME LoadablePieces-test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND LoadablePieces) + + + + diff --git a/tests/LoadablePieces/LoadablePieces.cpp b/tests/LoadablePieces/LoadablePieces.cpp new file mode 100644 index 000000000..cce43eee1 --- /dev/null +++ b/tests/LoadablePieces/LoadablePieces.cpp @@ -0,0 +1,57 @@ + +// LoadablePieces.cpp + +// Implements the LoadablePieces test main entrypoint + +#include "Globals.h" +#ifdef _WIN32 + #include <direct.h> + #define GetCurrentFolder _getcwd +#else + #include <unistd.h> + #define GetCurrentFolder getcwd +#endif +#include "Generating/PrefabPiecePool.h" + + + + + +static int DoTest(void) +{ + cPrefabPiecePool test; + auto res = test.LoadFromFile("Test.cubeset", true); + if (!res) + { + LOGWARNING("Loading from file \"Test.cubeset\" failed."); + return 1; + } + LOG("Loaded %u regular pieces and %u starting pieces", static_cast<unsigned>(test.GetAllPiecesCount()), static_cast<unsigned>(test.GetStartingPiecesCount())); + + // Check that we loaded all the pieces: + testassert(test.GetAllPiecesCount() == 1); + testassert(test.GetStartingPiecesCount() == 1); + + return 0; +} + + + + + +int main(int argc, char * argv[]) +{ + // Print the current directory for reference: + char folder[FILENAME_MAX]; + GetCurrentFolder(folder, sizeof(folder)); + LOG("Running cPrefabPiecePool test from folder \"%s\".", folder); + + // Run the test: + int res = DoTest(); + LOG("cPrefabPiecePool loading test done: %s", (res == 0) ? "success" : "failure"); + return res; +} + + + + diff --git a/tests/LoadablePieces/LuaState_Declaration.inc b/tests/LoadablePieces/LuaState_Declaration.inc new file mode 100644 index 000000000..4019b26c6 --- /dev/null +++ b/tests/LoadablePieces/LuaState_Declaration.inc @@ -0,0 +1,4 @@ + +// LuaState_Declaration.inc + +// Dummy include file needed for LuaState to compile successfully diff --git a/tests/LoadablePieces/LuaState_Typedefs.inc b/tests/LoadablePieces/LuaState_Typedefs.inc new file mode 100644 index 000000000..5eba7c6f8 --- /dev/null +++ b/tests/LoadablePieces/LuaState_Typedefs.inc @@ -0,0 +1,19 @@ + +// LuaState_Typedefs.inc + +// Dummy include file needed for LuaState to compile successfully + + + + + +// Forward-declare classes that are used in the API but never called: +struct HTTPRequest; +struct HTTPTemplateRequest; +class cPluginLua; +class cBoundingBox; +template <typename T> class cItemCallback; +class cEntity; + + + diff --git a/tests/LoadablePieces/Stubs.cpp b/tests/LoadablePieces/Stubs.cpp new file mode 100644 index 000000000..3f4623850 --- /dev/null +++ b/tests/LoadablePieces/Stubs.cpp @@ -0,0 +1,274 @@ + +// Stubs.cpp + +// Implements stubs of various MCServer methods that are needed for linking but not for runtime +// This is required so that we don't bring in the entire MCServer via dependencies + +#include "Globals.h" +#include "BlockInfo.h" +#include "SelfTests.h" +#include "Bindings.h" +#include "Bindings/DeprecatedBindings.h" +#include "Bindings/ManualBindings.h" +#include "BlockEntities/BlockEntity.h" +#include "Blocks/BlockHandler.h" +#include "Generating/ChunkDesc.h" + + + + + +// fwd: +struct lua_State; + + + + + +// Prototypes, needed by clang: +extern "C" int luaopen_lsqlite3(lua_State * a_LuaState); +extern "C" int luaopen_lxp(lua_State * a_LuaState); + + + + + +void cManualBindings::Bind(lua_State * a_LuaState) +{ +} + + + + + +void DeprecatedBindings::Bind(lua_State * a_LuaState) +{ +} + + + + + +int tolua_AllToLua_open(lua_State * a_LuaState) +{ + return 0; +} + + + + + +extern "C" int luaopen_lsqlite3(lua_State * a_LuaState) +{ + return 0; +} + + + + + +extern "C" int luaopen_lxp(lua_State * a_LuaState) +{ + return 0; +} + + + + + +cBlockInfo::~cBlockInfo() +{ +} + + + + + +void cBlockInfo::Initialize(cBlockInfo::cBlockInfoArray & a_BlockInfos) +{ + // The piece-loading code uses the handlers for rotations, so we need valid handlers + // Insert dummy handlers: + for (size_t i = 0; i < ARRAYCOUNT(a_BlockInfos); i++) + { + a_BlockInfos[i].m_Handler = new cBlockHandler(static_cast<BLOCKTYPE>(i)); + } +} + + + + + +cBlockHandler::cBlockHandler(BLOCKTYPE a_BlockType) +{ +} + + + + + +bool cBlockHandler::GetPlacementBlockTypeMeta( + cChunkInterface & a_ChunkInterface, cPlayer * a_Player, + int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, + int a_CursorX, int a_CursorY, int a_CursorZ, + BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta +) +{ + return true; +} + + + + + +void cBlockHandler::OnUpdate(cChunkInterface & cChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_PluginInterface, cChunk & a_Chunk, int a_BlockX, int a_BlockY, int a_BlockZ) +{ +} + + + + + +void cBlockHandler::OnPlacedByPlayer(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, const sSetBlock & a_BlockChange) +{ +} + + + + + +void cBlockHandler::OnDestroyedByPlayer(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ) +{ +} + + + + + +void cBlockHandler::OnPlaced(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) +{ +} + + + + + +void cBlockHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ) +{ +} + + + + + +void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) +{ +} + + + + + +void cBlockHandler::ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) +{ +} + + + + + +void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_BlockPluginInterface, cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ, bool a_CanDrop) +{ +} + + + + + +bool cBlockHandler::CanBeAt(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, const cChunk & a_Chunk) +{ + return true; +} + + + + + +bool cBlockHandler::IsUseable() +{ + return false; +} + + + + + +bool cBlockHandler::IsClickedThrough(void) +{ + return false; +} + + + + + +bool cBlockHandler::DoesIgnoreBuildCollision(void) +{ + return (m_BlockType == E_BLOCK_AIR); +} + + + + + +bool cBlockHandler::DoesDropOnUnsuitable(void) +{ + return true; +} + + + + + +void cBlockHandler::Check(cChunkInterface & a_ChunkInterface, cBlockPluginInterface & a_PluginInterface, int a_RelX, int a_RelY, int a_RelZ, cChunk & a_Chunk) +{ +} + + + + + +cBlockEntity * cBlockEntity::CreateByBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World) +{ + return nullptr; +} + + + + + +cSelfTests::cSelfTests(void): + m_AllowRegistering(true) +{ +} + + + + + +cSelfTests & cSelfTests::Get(void) +{ + static cSelfTests singleton; + return singleton; +} + + + + + +void cSelfTests::Register(cSelfTests::SelfTestFunction a_TestFn, const AString & a_TestName) +{ +} + + + + diff --git a/tests/LoadablePieces/Test.cubeset b/tests/LoadablePieces/Test.cubeset new file mode 100644 index 000000000..c1bdc9844 --- /dev/null +++ b/tests/LoadablePieces/Test.cubeset @@ -0,0 +1,154 @@ + +-- Test.cubeset + +-- This simple cubeset file is used for testing the cPrefabPiecePool loader. + + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + }, + + Pieces = + { + -- One piece with inline definition: + { + Size = + { + x = 4, + y = 4, + z = 4, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 3, + MaxY = 3, + MaxZ = 3, + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 1: 0", -- stone + "b: 24: 0", -- sandstone + "c: 8: 0", -- water + "d: 85: 0", -- fence + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaa", -- 0 + "aaaa", -- 1 + "aaaa", -- 2 + "aaaa", -- 3 + + -- Level 1 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 2 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + + -- Level 3 + "bbbb", -- 0 + "bccb", -- 1 + "bccb", -- 2 + "bbbb", -- 3 + }, + Connectors = + { + { + Type = 2, + RelX = 2, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + { + Type = 2, + RelX = 0, + RelY = 2, + RelZ = 1, + Direction = 4, -- X- + }, + { + Type = 2, + RelX = 1, + RelY = 2, + RelZ = 3, + Direction = 3, -- Z+ + }, + { + Type = 2, + RelX = 3, + RelY = 2, + RelZ = 2, + Direction = 5, -- X+ + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "1", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "1", + ["AddWeightIfSame"] = "0", + }, + }, + + -- One piece with external definition: + { + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 3, + MaxY = 3, + MaxZ = 3, + }, + SchematicFileName = "Test1.schematic", + Connectors = + { + { + Type = 2, + RelX = 2, + RelY = 2, + RelZ = 0, + Direction = 2, -- Z- + }, + }, + Metadata = + { + ["DefaultWeight"] = "100", + ["AllowedRotations"] = "7", + ["MergeStrategy"] = "msSpongePrint", + ["IsStarting"] = "0", + ["DepthWeight"] = "", + ["ShouldExpandFloor"] = "1", + ["MoveToGround"] = "0", + ["AddWeightIfSame"] = "0", + }, + }, + }, -- Pieces +} + + + + diff --git a/tests/LoadablePieces/Test1.schematic b/tests/LoadablePieces/Test1.schematic Binary files differnew file mode 100644 index 000000000..6fe19e9db --- /dev/null +++ b/tests/LoadablePieces/Test1.schematic |