├── .gitignore ├── LICENSE.md ├── README.md ├── blocks.csv ├── lib └── JNBT_1.4.jar ├── properties.csv ├── schematics ├── bandit-camp-2.schematic ├── caravan-1.schematic ├── cart.schematic ├── island-with-trees.schematic ├── luxury-house.schematic ├── statue-sword.schematic ├── tower-lg.schematic ├── train-engine.schematic └── wood-pile-xs.schematic ├── src ├── Block.java ├── Entity.java ├── Schematic2Structure.java └── TileEntity.java └── tests └── Tests.java /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/windows,intellij,java 3 | 4 | ### Windows ### 5 | # Windows image file caches 6 | Thumbs.db 7 | ehthumbs.db 8 | 9 | # Folder config file 10 | Desktop.ini 11 | 12 | # Recycle Bin used on file shares 13 | $RECYCLE.BIN/ 14 | 15 | # Windows Installer files 16 | *.cab 17 | *.msi 18 | *.msm 19 | *.msp 20 | 21 | # Windows shortcuts 22 | *.lnk 23 | 24 | 25 | ### Intellij ### 26 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm 27 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 28 | 29 | .idea/ 30 | # User-specific stuff: 31 | .idea/workspace.xml 32 | .idea/tasks.xml 33 | .idea/dictionaries 34 | .idea/vcs.xml 35 | .idea/jsLibraryMappings.xml 36 | 37 | # Sensitive or high-churn files: 38 | .idea/dataSources.ids 39 | .idea/dataSources.xml 40 | .idea/dataSources.local.xml 41 | .idea/sqlDataSources.xml 42 | .idea/dynamic.xml 43 | .idea/uiDesigner.xml 44 | 45 | # Gradle: 46 | .idea/gradle.xml 47 | .idea/libraries 48 | 49 | # Mongo Explorer plugin: 50 | .idea/mongoSettings.xml 51 | 52 | ## File-based project format: 53 | *.iws 54 | 55 | ## Plugin-specific files: 56 | 57 | # IntelliJ 58 | /out/ 59 | 60 | # mpeltonen/sbt-idea plugin 61 | .idea_modules/ 62 | 63 | # JIRA plugin 64 | atlassian-ide-plugin.xml 65 | 66 | # Crashlytics plugin (for Android Studio and IntelliJ) 67 | com_crashlytics_export_strings.xml 68 | crashlytics.properties 69 | crashlytics-build.properties 70 | fabric.properties 71 | 72 | ### Intellij Patch ### 73 | # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 74 | 75 | # *.iml 76 | # modules.xml 77 | # .idea/misc.xml 78 | # *.ipr 79 | 80 | 81 | ### Java ### 82 | *.class 83 | 84 | # Mobile Tools for Java (J2ME) 85 | .mtj.tmp/ 86 | 87 | # Package Files # 88 | *.jar 89 | *.war 90 | *.ear 91 | 92 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 93 | hs_err_pid* 94 | 95 | 96 | Schematic2Structure.iml -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Taylor Wilton 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Schematic2Structure 2 | Schematic2Structure is a utility to convert .schematic files to Minecraft's .nbt file format for use with the Structure block. 3 | It's currently in a development stage, so not everything works properly yet. 4 | 5 | ## Usage 6 | coming soon 7 | 8 | 9 | ## Known Issues 10 | - blocks from MC 1.11 aren't included yet, and therefore don't work 11 | - certain block rotation isn't yet fully supported (e.g logs) 12 | 13 | ## Notes 14 | Structures must be at maximum 32x32x32 blocks (width x height x length). This is a requirement of Minecraft's structure block format 15 | -------------------------------------------------------------------------------- /blocks.csv: -------------------------------------------------------------------------------- 1 | 0,Air,minecraft:air 2 | 1,Stone,minecraft:stone 3 | 2,Grass,minecraft:grass 4 | 3,Dirt,minecraft:dirt 5 | 4,Cobblestone,minecraft:cobblestone 6 | 5,Oak Wood Plank,minecraft:planks 7 | 6,Oak Sapling,minecraft:sapling 8 | 7,Bedrock,minecraft:bedrock 9 | 8,Flowing Water,minecraft:flowing_water 10 | 9,Still Water,minecraft:water 11 | 10,Flowing Lava,minecraft:flowing_lava 12 | 11,Still Lava,minecraft:lava 13 | 12,Sand,minecraft:sand 14 | 13,Gravel,minecraft:gravel 15 | 14,Gold Ore,minecraft:gold_ore 16 | 15,Iron Ore,minecraft:iron_ore 17 | 16,Coal Ore,minecraft:coal_ore 18 | 17,Oak Wood,minecraft:log 19 | 18,Oak Leaves,minecraft:leaves 20 | 19,Sponge,minecraft:sponge 21 | 20,Glass,minecraft:glass 22 | 21,Lapis Lazuli Ore,minecraft:lapis_ore 23 | 22,Lapis Lazuli Block,minecraft:lapis_block 24 | 23,Dispenser,minecraft:dispenser 25 | 24,Sandstone,minecraft:sandstone 26 | 25,Note Block,minecraft:noteblock 27 | 26,Bed,minecraft:bed 28 | 27,Powered Rail,minecraft:golden_rail 29 | 28,Detector Rail,minecraft:detector_rail 30 | 29,Sticky Piston,minecraft:sticky_piston 31 | 30,Cobweb,minecraft:web 32 | 31,Dead Shrub,minecraft:tallgrass 33 | 32,Dead Bush,minecraft:deadbush 34 | 33,Piston,minecraft:piston 35 | 34,Piston Head,minecraft:piston_head 36 | 35,White Wool,minecraft:wool 37 | 37,Dandelion,minecraft:yellow_flower 38 | 38,Poppy,minecraft:red_flower 39 | 39,Brown Mushroom,minecraft:brown_mushroom 40 | 40,Red Mushroom,minecraft:red_mushroom 41 | 41,Gold Block,minecraft:gold_block 42 | 42,Iron Block,minecraft:iron_block 43 | 43,Double Stone Slab,minecraft:double_stone_slab 44 | 44,Stone Slab,minecraft:stone_slab 45 | 45,Bricks,minecraft:brick_block 46 | 46,TNT,minecraft:tnt 47 | 47,Bookshelf,minecraft:bookshelf 48 | 48,Moss Stone,minecraft:mossy_cobblestone 49 | 49,Obsidian,minecraft:obsidian 50 | 50,Torch,minecraft:torch 51 | 51,Fire,minecraft:fire 52 | 52,Monster Spawner,minecraft:mob_spawner 53 | 53,Oak Wood Stairs,minecraft:oak_stairs 54 | 54,Chest,minecraft:chest 55 | 55,Redstone Wire,minecraft:redstone_wire 56 | 56,Diamond Ore,minecraft:diamond_ore 57 | 57,Diamond Block,minecraft:diamond_block 58 | 58,Crafting Table,minecraft:crafting_table 59 | 59,Wheat Crops,minecraft:wheat 60 | 60,Farmland,minecraft:farmland 61 | 61,Furnace,minecraft:furnace 62 | 62,Burning Furnace,minecraft:lit_furnace 63 | 63,Standing Sign Block,minecraft:standing_sign 64 | 64,Oak Door Block,minecraft:wooden_door 65 | 65,Ladder,minecraft:ladder 66 | 66,Rail,minecraft:rail 67 | 67,Cobblestone Stairs,minecraft:stone_stairs 68 | 68,Wall-mounted Sign Block,minecraft:wall_sign 69 | 69,Lever,minecraft:lever 70 | 70,Stone Pressure Plate,minecraft:stone_pressure_plate 71 | 71,Iron Door Block,minecraft:iron_door 72 | 72,Wooden Pressure Plate,minecraft:wooden_pressure_plate 73 | 73,Redstone Ore,minecraft:redstone_ore 74 | 74,Glowing Redstone Ore,minecraft:lit_redstone_ore 75 | 75,Redstone Torch (off,minecraft:unlit_redstone_torch 76 | 76,Redstone Torch (on,minecraft:redstone_torch 77 | 77,Stone Button,minecraft:stone_button 78 | 78,Snow,minecraft:snow_layer 79 | 79,Ice,minecraft:ice 80 | 80,Snow Block,minecraft:snow 81 | 81,Cactus,minecraft:cactus 82 | 82,Clay,minecraft:clay 83 | 83,Sugar Canes,minecraft:reeds 84 | 84,Jukebox,minecraft:jukebox 85 | 85,Oak Fence,minecraft:fence 86 | 86,Pumpkin,minecraft:pumpkin 87 | 87,Netherrack,minecraft:netherrack 88 | 88,Soul Sand,minecraft:soul_sand 89 | 89,Glowstone,minecraft:glowstone 90 | 90,Nether Portal,minecraft:portal 91 | 91,Jack o'Lantern,minecraft:lit_pumpkin 92 | 92,Cake Block,minecraft:cake 93 | 93,Redstone Repeater Block (off,minecraft:unpowered_repeater 94 | 94,Redstone Repeater Block (on,minecraft:powered_repeater 95 | 95,White Stained Glass,minecraft:stained_glass 96 | 96,Wooden Trapdoor,minecraft:trapdoor 97 | 97,Stone Monster Egg,minecraft:monster_egg 98 | 98,Stone Bricks,minecraft:stonebrick 99 | 99,Brown Mushroom Block,minecraft:brown_mushroom_block 100 | 100,Red Mushroom Block,minecraft:red_mushroom_block 101 | 101,Iron Bars,minecraft:iron_bars 102 | 102,Glass Pane,minecraft:glass_pane 103 | 103,Melon Block,minecraft:melon_block 104 | 104,Pumpkin Stem,minecraft:pumpkin_stem 105 | 105,Melon Stem,minecraft:melon_stem 106 | 106,Vines,minecraft:vine 107 | 107,Oak Fence Gate,minecraft:fence_gate 108 | 108,Brick Stairs,minecraft:brick_stairs 109 | 109,Stone Brick Stairs,minecraft:stone_brick_stairs 110 | 110,Mycelium,minecraft:mycelium 111 | 111,Lily Pad,minecraft:waterlily 112 | 112,Nether Brick,minecraft:nether_brick 113 | 113,Nether Brick Fence,minecraft:nether_brick_fence 114 | 114,Nether Brick Stairs,minecraft:nether_brick_stairs 115 | 115,Nether Wart,minecraft:nether_wart 116 | 116,Enchantment Table,minecraft:enchanting_table 117 | 117,Brewing Stand,minecraft:brewing_stand 118 | 118,Cauldron,minecraft:cauldron 119 | 119,End Portal,minecraft:end_portal 120 | 120,End Portal Frame,minecraft:end_portal_frame 121 | 121,End Stone,minecraft:end_stone 122 | 122,Dragon Egg,minecraft:dragon_egg 123 | 123,Redstone Lamp (inactive,minecraft:redstone_lamp 124 | 124,Redstone Lamp (active,minecraft:lit_redstone_lamp 125 | 125,Double Oak Wood Slab,minecraft:double_wooden_slab 126 | 126,Oak Wood Slab,minecraft:wooden_slab 127 | 127,Cocoa,minecraft:cocoa 128 | 128,Sandstone Stairs,minecraft:sandstone_stairs 129 | 129,Emerald Ore,minecraft:emerald_ore 130 | 130,Ender Chest,minecraft:ender_chest 131 | 131,Tripwire Hook,minecraft:tripwire_hook 132 | 132,Tripwire,minecraft:tripwire_hook 133 | 133,Emerald Block,minecraft:emerald_block 134 | 134,Spruce Wood Stairs,minecraft:spruce_stairs 135 | 135,Birch Wood Stairs,minecraft:birch_stairs 136 | 136,Jungle Wood Stairs,minecraft:jungle_stairs 137 | 137,Command Block,minecraft:command_block 138 | 138,Beacon,minecraft:beacon 139 | 139,Cobblestone Wall,minecraft:cobblestone_wall 140 | 140,Flower Pot,minecraft:flower_pot 141 | 141,Carrots,minecraft:carrots 142 | 142,Potatoes,minecraft:potatoes 143 | 143,Wooden Button,minecraft:wooden_button 144 | 144,Mob Head,minecraft:skull 145 | 145,Anvil,minecraft:anvil 146 | 146,Trapped Chest,minecraft:trapped_chest 147 | 147,Weighted Pressure Plate (light,minecraft:light_weighted_pressure_plate 148 | 148,Weighted Pressure Plate (heavy,minecraft:heavy_weighted_pressure_plate 149 | 149,Redstone Comparator (inactive,minecraft:unpowered_comparator 150 | 150,Redstone Comparator (active,minecraft:powered_comparator 151 | 151,Daylight Sensor,minecraft:daylight_detector 152 | 152,Redstone Block,minecraft:redstone_block 153 | 153,Nether Quartz Ore,minecraft:quartz_ore 154 | 154,Hopper,minecraft:hopper 155 | 155,Quartz Block,minecraft:quartz_block 156 | 156,Quartz Stairs,minecraft:quartz_stairs 157 | 157,Activator Rail,minecraft:activator_rail 158 | 158,Dropper,minecraft:dropper 159 | 159,White Stained Clay,minecraft:stained_hardened_clay 160 | 160,White Stained Glass Pane,minecraft:stained_glass_pane 161 | 161,Acacia Leaves,minecraft:leaves2 162 | 162,Acacia Wood,minecraft:log2 163 | 163,Acacia Wood Stairs,minecraft:acacia_stairs 164 | 164,Dark Oak Wood Stairs,minecraft:dark_oak_stairs 165 | 165,Slime Block,minecraft:slime 166 | 166,Barrier,minecraft:barrier 167 | 167,Iron Trapdoor,minecraft:iron_trapdoor 168 | 168,Prismarine,minecraft:prismarine 169 | 169,Sea Lantern,minecraft:sea_lantern 170 | 170,Hay Bale,minecraft:hay_block 171 | 171,White Carpet,minecraft:carpet 172 | 172,Hardened Clay,minecraft:hardened_clay 173 | 173,Block of Coal,minecraft:coal_block 174 | 174,Packed Ice,minecraft:packed_ice 175 | 175,Sunflower,minecraft:double_plant 176 | 176,Free-standing Banner,minecraft:standing_banner 177 | 177,Wall-mounted Banner,minecraft:wall_banner 178 | 178,Inverted Daylight Sensor,minecraft:daylight_detector_inverted 179 | 179,Red Sandstone,minecraft:red_sandstone 180 | 180,Red Sandstone Stairs,minecraft:red_sandstone_stairs 181 | 181,Double Red Sandstone Slab,minecraft:double_stone_slab2 182 | 182,Red Sandstone Slab,minecraft:stone_slab2 183 | 183,Spruce Fence Gate,minecraft:spruce_fence_gate 184 | 184,Birch Fence Gate,minecraft:birch_fence_gate 185 | 185,Jungle Fence Gate,minecraft:jungle_fence_gate 186 | 186,Dark Oak Fence Gate,minecraft:dark_oak_fence_gate 187 | 187,Acacia Fence Gate,minecraft:acacia_fence_gate 188 | 188,Spruce Fence,minecraft:spruce_fence 189 | 189,Birch Fence,minecraft:birch_fence 190 | 190,Jungle Fence,minecraft:jungle_fence 191 | 191,Dark Oak Fence,minecraft:dark_oak_fence 192 | 192,Acacia Fence,minecraft:acacia_fence 193 | 193,Spruce Door Block,minecraft:spruce_door 194 | 194,Birch Door Block,minecraft:birch_door 195 | 195,Jungle Door Block,minecraft:jungle_door 196 | 196,Acacia Door Block,minecraft:acacia_door 197 | 197,Dark Oak Door Block,minecraft:dark_oak_door 198 | 198,End Rod,minecraft:end_rod 199 | 199,Chorus Plant,minecraft:chorus_plant 200 | 200,Chorus Flower,minecraft:chorus_flower 201 | 201,Purpur Block,minecraft:purpur_block 202 | 202,Purpur Pillar,minecraft:purpur_pillar 203 | 203,Purpur Stairs,minecraft:purpur_stairs 204 | 204,Purpur Double Slab,minecraft:purpur_double_slab 205 | 205,Purpur Slab,minecraft:purpur_slab 206 | 206,End Stone Bricks,minecraft:end_bricks 207 | 207,Beetroot Block,minecraft:beetroots 208 | 208,Grass Path,minecraft:grass_path 209 | 209,End Gateway,minecraft:end_gateway 210 | 210,Repeating Command Block,minecraft:repeating_command_block 211 | 211,Chain Command Block,minecraft:chain_command_block 212 | 212,Frosted Ice,minecraft:frosted_ice 213 | 213,Magma Block,minecraft:magma_block 214 | 214,Nether Wart Block,minecraft:nether_wart_block 215 | 215,Red Nether Brick,minecraft:red_nether_brick 216 | 216,Bone Block,minecraft:bone_block 217 | 217,Structure Void,minecraft:structure_void 218 | 255,Structure Block,minecraft:structure_block -------------------------------------------------------------------------------- /lib/JNBT_1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/lib/JNBT_1.4.jar -------------------------------------------------------------------------------- /properties.csv: -------------------------------------------------------------------------------- 1 | 17:0|variant:oakaxis:x 2 | 17:1|variant:spruce,axis:x 3 | 17:2|variant:birch,axis:x 4 | 17:3|variant:jungle,axis:x 5 | 17:4|variant:oak,axis:y 6 | 17:5|variant:spruce,axis:y 7 | 17:6|variant:birch,axis:y 8 | 17:7|variant:jungle,axis:y 9 | 17:8|variant:oak,axis:z 10 | 17:9|variant:spruce,axis:z 11 | 17:10|variant:birch,axis:z 12 | 17:11|variant:jungle,axis:z 13 | 17:12|variant:oak,axis:none 14 | 17:13|variant:spruce,axis:none 15 | 17:14|variant:birch,axis:none 16 | 17:15|variant:jungle,axis:none 17 | 162:0|variant:acacia,axis:z 18 | 162:1|variant:dark_oak,axis:z 19 | 162:4|variant:acacia,axis:x 20 | 162:5|variant:dark_oak,axis:x 21 | 162:8|variant:acacia,axis:y 22 | 162:9|variant:dark_oak,axis:y 23 | 162:12|variant:acacia,axis:none 24 | 162:13|variant:dark_oak,axis:none 25 | 65:2|facing:north 26 | 65:3|facing:south 27 | 65:4|facing:west 28 | 65:5|facing:east 29 | 66:0|shape:north_south 30 | 66:1|shape:east_west 31 | 66:2|shape:north_east 32 | 66:3|shape:north_west 33 | 66:4|shape:south_east 34 | 66:5|shape:south_west 35 | 66:6|shape:ascending_north 36 | 66:7|shape:ascending_south 37 | 66:8|shape:ascending_east 38 | 66:9|shape:ascending_west 39 | 35:0|color:white 40 | 35:1|color:orange 41 | 35:2|color:magenta 42 | 35:3|color:lightBlue 43 | 35:4|color:yellow 44 | 35:5|color:lime 45 | 35:6|color:pink 46 | 35:7|color:gray 47 | 35:8|color:silver 48 | 35:9|color:cyan 49 | 35:10|color:purple 50 | 35:11|color:blue 51 | 35:12|color:brown 52 | 35:13|color:green 53 | 35:14|color:red 54 | 35:15|color:black 55 | 145:0|damage:0,facing:north 56 | 145:1|damage:1,facing:east 57 | 145:2|damage:2,facing:south 58 | 145:3|damage:3,facing:west 59 | 145:4|damage:4,facing:north 60 | 145:5|damage:5,facing:east 61 | 145:6|damage:6,facing:south 62 | 145:7|damage:7,facing:west 63 | 145:8|damage:8,facing:north 64 | 145:9|damage:9,facing:east 65 | 145:10|damage:10,facing:south 66 | 145:11|damage:11,facing:west 67 | 176:0|rotation:south 68 | 176:1|rotation:south-southwest 69 | 176:2|rotation:southwest 70 | 176:3|rotation:west-southwest 71 | 176:4|rotation:west 72 | 176:5|rotation:west-northwest 73 | 176:6|rotation:northwest 74 | 176:7|rotation:north-northwest 75 | 176:8|rotation:north 76 | 176:9|rotation:north-northeast 77 | 176:10|rotation:northeast 78 | 176:11|rotation:east-northeast 79 | 176:12|rotation:east 80 | 176:13|rotation:east-southeast 81 | 176:14|rotation:southeast 82 | 176:15|rotation:south-southeast 83 | 177:2|facing:north 84 | 177:3|facing:south 85 | 177:4|facing:east 86 | 177:5|facing:west 87 | 434:0|age:0 88 | 434:1|age:1 89 | 434:2|age:2 90 | 434:3|age:3 91 | 216:0|axis:y 92 | 216:4|axis:x 93 | 216:8|axis:z 94 | 26:0|facing:south,occupied:false,part:foot 95 | 26:1|facing:west,occupied:false,part:foot 96 | 26:2|facing:north,occupied:false,part:foot 97 | 26:3|facing:east,occupied:false,part:foot 98 | 26:8|facing:south,occupied:false,part:head 99 | 26:9|facing:west,occupied:false,part:head 100 | 26:10|facing:north,occupied:false,part:head 101 | 26:11|facing:east,occupied:false,part:head 102 | 117:0|has_bottle_0:false,has_bottle_1:false,has_bottle_2:false 103 | 117:1|has_bottle_0:true,has_bottle_1:false,has_bottle_2:false 104 | 117:2|has_bottle_0:false,has_bottle_1:true,has_bottle_2:false 105 | 117:3|has_bottle_0:true,has_bottle_1:true,has_bottle_2:false 106 | 117:4|has_bottle_0:false,has_bottle_1:false,has_bottle_2:true 107 | 117:5|has_bottle_0:true,has_bottle_1:false,has_bottle_2:true 108 | 117:6|has_bottle_0:false,has_bottle_1:true,has_bottle_2:true 109 | 117:7|has_bottle_0:true,has_bottle_1:true,has_bottle_2:true 110 | 77:0|facing:down,powered:false 111 | 77:1|facing:east,powered:false 112 | 77:2|facing:west,powered:false 113 | 77:3|facing:south,powered:false 114 | 77:4|facing:north,powered:false 115 | 77:5|facing:up,powered:false 116 | 77:8|facing:down,powered:true 117 | 77:9|facing:east,powered:true 118 | 77:10|facing:west,powered:true 119 | 77:11|facing:south,powered:true 120 | 77:12|facing:north,powered:true 121 | 77:13|facing:up,powered:true 122 | 81:0|age:0 123 | 81:1|age:1 124 | 81:2|age:2 125 | 81:3|age:3 126 | 81:4|age:4 127 | 81:5|age:5 128 | 81:6|age:6 129 | 81:7|age:7 130 | 81:8|age:8 131 | 81:9|age:9 132 | 81:10|age:10 133 | 81:11|age:11 134 | 81:12|age:12 135 | 81:13|age:13 136 | 81:14|age:14 137 | 81:15|age:15 138 | 92:0|bites:0 139 | 92:1|bites:1 140 | 92:2|bites:2 141 | 92:3|bites:3 142 | 92:4|bites:4 143 | 92:5|bites:5 144 | 92:6|bites:6 145 | 171:0|color:white 146 | 171:1|color:orange 147 | 171:2|color:magenta 148 | 171:3|color:lightBlue 149 | 171:4|color:yellow 150 | 171:5|color:lime 151 | 171:6|color:pink 152 | 171:7|color:gray 153 | 171:8|color:silver 154 | 171:9|color:cyan 155 | 171:10|color:purple 156 | 171:11|color:blue 157 | 171:12|color:brown 158 | 171:13|color:green 159 | 171:14|color:red 160 | 171:15|color:black 161 | 141:0|age:0 162 | 141:1|age:1 163 | 141:2|age:2 164 | 141:3|age:3 165 | 141:4|age:4 166 | 141:5|age:5 167 | 141:6|age:6 168 | 141:7|age:7 169 | 118:0|level:0 170 | 118:1|level:1 171 | 118:2|level:2 172 | 118:3|level:3 173 | 54:2|facing:north 174 | 54:3|facing:south 175 | 54:4|facing:west 176 | 54:5|facing:east 177 | 130:2|facing:north 178 | 130:3|facing:south 179 | 130:4|facing:west 180 | 130:5|facing:east 181 | 146:2|facing:north 182 | 146:3|facing:south 183 | 146:4|facing:west 184 | 146:5|facing:east 185 | 200:0|age:0 186 | 200:1|age:1 187 | 200:2|age:2 188 | 200:3|age:3 189 | 200:4|age:4 190 | 200:5|age:5 191 | 199:0|north:false,south:false,east:false,west:false,up:false,down:false 192 | 139:0|north:false,south:false,east:false,west:false,up:true,variant:cobblestone 193 | 139:1|north:false,south:false,east:false,west:false,up:true,variant:mossy_cobblestone 194 | 127:0|facing:south,age:0 195 | 127:1|facing:west,age:0 196 | 127:2|facing:north,age:0 197 | 127:3|facing:east,age:0 198 | 127:4|facing:south,age:1 199 | 127:5|facing:west,age:1 200 | 127:6|facing:north,age:1 201 | 127:7|facing:east,age:1 202 | 127:8|facing:south,age:2 203 | 127:9|facing:west,age:2 204 | 127:10|facing:north,age:2 205 | 127:11|facing:east,age:2 206 | 137:0|conditional:false,facing:down 207 | 137:1|conditional:false,facing:up 208 | 137:2|conditional:false,facing:north 209 | 137:3|conditional:false,facing:south 210 | 137:4|conditional:false,facing:west 211 | 137:5|conditional:false,facing:east 212 | 137:8|conditional:true,facing:down 213 | 137:9|conditional:true,facing:up 214 | 137:10|conditional:true,facing:north 215 | 137:11|conditional:true,facing:south 216 | 137:12|conditional:true,facing:west 217 | 137:13|conditional:true,facing:east 218 | 210:0|conditional:false,facing:down 219 | 210:1|conditional:false,facing:up 220 | 210:2|conditional:false,facing:north 221 | 210:3|conditional:false,facing:south 222 | 210:4|conditional:false,facing:west 223 | 210:5|conditional:false,facing:east 224 | 210:8|conditional:true,facing:down 225 | 210:9|conditional:true,facing:up 226 | 210:10|conditional:true,facing:north 227 | 210:11|conditional:true,facing:south 228 | 210:12|conditional:true,facing:west 229 | 210:13|conditional:true,facing:east 230 | 211:0|conditional:false,facing:down 231 | 211:1|conditional:false,facing:up 232 | 211:2|conditional:false,facing:north 233 | 211:3|conditional:false,facing:south 234 | 211:4|conditional:false,facing:west 235 | 211:5|conditional:false,facing:east 236 | 211:8|conditional:true,facing:down 237 | 211:9|conditional:true,facing:up 238 | 211:10|conditional:true,facing:north 239 | 211:11|conditional:true,facing:south 240 | 211:12|conditional:true,facing:west 241 | 211:13|conditional:true,facing:east 242 | 151:0|power:0 243 | 151:1|power:1 244 | 151:2|power:2 245 | 151:3|power:3 246 | 151:4|power:4 247 | 151:5|power:5 248 | 151:6|power:6 249 | 151:7|power:7 250 | 151:8|power:8 251 | 151:9|power:9 252 | 151:10|power:10 253 | 151:11|power:11 254 | 151:12|power:12 255 | 151:13|power:13 256 | 151:14|power:14 257 | 151:15|power:15 258 | 178:0|power:0 259 | 178:1|power:1 260 | 178:2|power:2 261 | 178:3|power:3 262 | 178:4|power:4 263 | 178:5|power:5 264 | 178:6|power:6 265 | 178:7|power:7 266 | 178:8|power:8 267 | 178:9|power:9 268 | 178:10|power:10 269 | 178:11|power:11 270 | 178:12|power:12 271 | 178:13|power:13 272 | 178:14|power:14 273 | 178:15|power:15 274 | 3:0|snowy:false,variant:dirt 275 | 3:1|snowy:false,variant:coarse_dirt 276 | 3:2|snowy:false,variant:podzol 277 | 23:0|facing:down,triggered:false 278 | 23:1|facing:up,triggered:false 279 | 23:2|facing:north,triggered:false 280 | 23:3|facing:south,triggered:false 281 | 23:4|facing:west,triggered:false 282 | 23:5|facing:east,triggered:false 283 | 23:8|facing:down,triggered:true 284 | 23:9|facing:up,triggered:true 285 | 23:10|facing:north,triggered:true 286 | 23:11|facing:south,triggered:true 287 | 23:12|facing:west,triggered:true 288 | 23:13|facing:east,triggered:true 289 | 64:0|facing:east,half:lower,hinge:right,open:false,powered:false 290 | 64:1|facing:south,half:lower,highe:right,open:false,powered:false 291 | 64:2|facing:west,half:lower,hinge:right,open:false,powered:false 292 | 64:3|facing:north,half:lower,hinge:right,open:false,powered:false 293 | 64:4|facing:east,half:lower,hinge:right,open:true,powered:false 294 | 64:5|facing:south,half:lower,highe:right,open:true,powered:false 295 | 64:6|facing:west,half:lower,hinge:right,open:true,powered:false 296 | 64:7|facing:north,half:lower,hinge:right,open:true,powered:false 297 | 64:8|facing:east,half:upper,hinge:left,open:false,powered:false 298 | 193:0|facing:east,half:lower,hinge:right,open:false,powered:false 299 | 193:1|facing:south,half:lower,highe:right,open:false,powered:false 300 | 193:2|facing:west,half:lower,hinge:right,open:false,powered:false 301 | 193:3|facing:north,half:lower,hinge:right,open:false,powered:false 302 | 193:4|facing:east,half:lower,hinge:right,open:true,powered:false 303 | 193:5|facing:south,half:lower,highe:right,open:true,powered:false 304 | 193:6|facing:west,half:lower,hinge:right,open:true,powered:false 305 | 193:7|facing:north,half:lower,hinge:right,open:true,powered:false 306 | 193:8|facing:east,half:upper,hinge:left,open:false,powered:false 307 | 194:0|facing:east,half:lower,hinge:right,open:false,powered:false 308 | 194:1|facing:south,half:lower,highe:right,open:false,powered:false 309 | 194:2|facing:west,half:lower,hinge:right,open:false,powered:false 310 | 194:3|facing:north,half:lower,hinge:right,open:false,powered:false 311 | 194:4|facing:east,half:lower,hinge:right,open:true,powered:false 312 | 194:5|facing:south,half:lower,highe:right,open:true,powered:false 313 | 194:6|facing:west,half:lower,hinge:right,open:true,powered:false 314 | 194:7|facing:north,half:lower,hinge:right,open:true,powered:false 315 | 194:8|facing:east,half:upper,hinge:left,open:false,powered:false 316 | 195:0|facing:east,half:lower,hinge:right,open:false,powered:false 317 | 195:1|facing:south,half:lower,highe:right,open:false,powered:false 318 | 195:2|facing:west,half:lower,hinge:right,open:false,powered:false 319 | 195:3|facing:north,half:lower,hinge:right,open:false,powered:false 320 | 195:4|facing:east,half:lower,hinge:right,open:true,powered:false 321 | 195:5|facing:south,half:lower,highe:right,open:true,powered:false 322 | 195:6|facing:west,half:lower,hinge:right,open:true,powered:false 323 | 195:7|facing:north,half:lower,hinge:right,open:true,powered:false 324 | 195:8|facing:east,half:upper,hinge:left,open:false,powered:false 325 | 196:0|facing:east,half:lower,hinge:right,open:false,powered:false 326 | 196:1|facing:south,half:lower,highe:right,open:false,powered:false 327 | 196:2|facing:west,half:lower,hinge:right,open:false,powered:false 328 | 196:3|facing:north,half:lower,hinge:right,open:false,powered:false 329 | 196:4|facing:east,half:lower,hinge:right,open:true,powered:false 330 | 196:5|facing:south,half:lower,highe:right,open:true,powered:false 331 | 196:6|facing:west,half:lower,hinge:right,open:true,powered:false 332 | 196:7|facing:north,half:lower,hinge:right,open:true,powered:false 333 | 196:8|facing:east,half:upper,hinge:left,open:false,powered:false 334 | 197:0|facing:east,half:lower,hinge:right,open:false,powered:false 335 | 197:1|facing:south,half:lower,highe:right,open:false,powered:false 336 | 197:2|facing:west,half:lower,hinge:right,open:false,powered:false 337 | 197:3|facing:north,half:lower,hinge:right,open:false,powered:false 338 | 197:4|facing:east,half:lower,hinge:right,open:true,powered:false 339 | 197:5|facing:south,half:lower,highe:right,open:true,powered:false 340 | 197:6|facing:west,half:lower,hinge:right,open:true,powered:false 341 | 197:7|facing:north,half:lower,hinge:right,open:true,powered:false 342 | 197:8|facing:east,half:upper,hinge:left,open:false,powered:false 343 | 71:0|facing:east,half:lower,hinge:right,open:false,powered:false 344 | 71:1|facing:south,half:lower,highe:right,open:false,powered:false 345 | 71:2|facing:west,half:lower,hinge:right,open:false,powered:false 346 | 71:3|facing:north,half:lower,hinge:right,open:false,powered:false 347 | 71:4|facing:east,half:lower,hinge:right,open:true,powered:false 348 | 71:5|facing:south,half:lower,highe:right,open:true,powered:false 349 | 71:6|facing:west,half:lower,hinge:right,open:true,powered:false 350 | 71:7|facing:north,half:lower,hinge:right,open:true,powered:false 351 | 71:8|facing:east,half:upper,hinge:left,open:false,powered:false 352 | 158:0|facing:down,triggered:false 353 | 158:1|facing:up,triggered:false 354 | 158:2|facing:north,triggered:false 355 | 158:3|facing:south,triggered:false 356 | 158:4|facing:west,triggered:false 357 | 158:5|facing:east,triggered:false 358 | 158:8|facing:down,triggered:true 359 | 158:9|facing:up,triggered:true 360 | 158:10|facing:north,triggered:true 361 | 158:11|facing:south,triggered:true 362 | 158:12|facing:west,triggered:true 363 | 158:13|facing:east,triggered:true 364 | 120:0|eye:false,facing:south 365 | 120:1|eye:false,facing:west 366 | 120:2|eye:false,facing:north 367 | 120:3|eye:false,facing:east 368 | 120:4|eye:true,facing:south 369 | 120:5|eye:true,facing:west 370 | 120:6|eye:true,facing:north 371 | 120:7|eye:true,facing:east 372 | 198:0|facing:down 373 | 198:1|facing:up 374 | 198:2|facing:north 375 | 198:3|facing:south 376 | 198:4|facing:west 377 | 198:5|facing:east 378 | 60:0|moisture:0 379 | 60:1|moisture,1 380 | 60:2|moisture,2 381 | 60:3|moisture,3 382 | 60:4|moisture,4 383 | 60:5|moisture,5 384 | 60:6|moisture,6 385 | 60:7|moisture,7 386 | 85:0|north:false,south:false,east:false,west:false 387 | 188:0|north:false,south:false,east:false,west:false 388 | 189:0|north:false,south:false,east:false,west:false 389 | 190:0|north:false,south:false,east:false,west:false 390 | 191:0|north:false,south:false,east:false,west:false 391 | 192:0|north:false,south:false,east:false,west:false 392 | 113:0|north:false,south:false,east:false,west:false 393 | 107:0|facing:south,in_wall:false,open:false,powered:false 394 | 107:1|facing:west,in_wall:false,open:false,powered:false 395 | 107:2|facing:north,in_wall:false,open:false,powered:false 396 | 107:3|facing:east,in_wall:false,open:false,powered:false 397 | 107:4|facing:south,in_wall:false,open:true,powered:false 398 | 107:5|facing:west,in_wall:false,open:true,powered:false 399 | 107:6|facing:north,in_wall:false,open:true,powered:false 400 | 107:7|facing:east,in_wall:false,open:true,powered:false 401 | 183:0|facing:south,in_wall:false,open:false,powered:false 402 | 183:1|facing:west,in_wall:false,open:false,powered:false 403 | 183:2|facing:north,in_wall:false,open:false,powered:false 404 | 183:3|facing:east,in_wall:false,open:false,powered:false 405 | 183:4|facing:south,in_wall:false,open:true,powered:false 406 | 183:5|facing:west,in_wall:false,open:true,powered:false 407 | 183:6|facing:north,in_wall:false,open:true,powered:false 408 | 183:7|facing:east,in_wall:false,open:true,powered:false 409 | 184:0|facing:south,in_wall:false,open:false,powered:false 410 | 184:1|facing:west,in_wall:false,open:false,powered:false 411 | 184:2|facing:north,in_wall:false,open:false,powered:false 412 | 184:3|facing:east,in_wall:false,open:false,powered:false 413 | 184:4|facing:south,in_wall:false,open:true,powered:false 414 | 184:5|facing:west,in_wall:false,open:true,powered:false 415 | 184:6|facing:north,in_wall:false,open:true,powered:false 416 | 184:7|facing:east,in_wall:false,open:true,powered:false 417 | 185:0|facing:south,in_wall:false,open:false,powered:false 418 | 185:1|facing:west,in_wall:false,open:false,powered:false 419 | 185:2|facing:north,in_wall:false,open:false,powered:false 420 | 185:3|facing:east,in_wall:false,open:false,powered:false 421 | 185:4|facing:south,in_wall:false,open:true,powered:false 422 | 185:5|facing:west,in_wall:false,open:true,powered:false 423 | 185:6|facing:north,in_wall:false,open:true,powered:false 424 | 185:7|facing:east,in_wall:false,open:true,powered:false 425 | 186:0|facing:south,in_wall:false,open:false,powered:false 426 | 186:1|facing:west,in_wall:false,open:false,powered:false 427 | 186:2|facing:north,in_wall:false,open:false,powered:false 428 | 186:3|facing:east,in_wall:false,open:false,powered:false 429 | 186:4|facing:south,in_wall:false,open:true,powered:false 430 | 186:5|facing:west,in_wall:false,open:true,powered:false 431 | 186:6|facing:north,in_wall:false,open:true,powered:false 432 | 186:7|facing:east,in_wall:false,open:true,powered:false 433 | 187:0|facing:south,in_wall:false,open:false,powered:false 434 | 187:1|facing:west,in_wall:false,open:false,powered:false 435 | 187:2|facing:north,in_wall:false,open:false,powered:false 436 | 187:3|facing:east,in_wall:false,open:false,powered:false 437 | 187:4|facing:south,in_wall:false,open:true,powered:false 438 | 187:5|facing:west,in_wall:false,open:true,powered:false 439 | 187:6|facing:north,in_wall:false,open:true,powered:false 440 | 187:7|facing:east,in_wall:false,open:true,powered:false 441 | 51:0|age:0,up:false,north:false,south:false,east:false,west:false 442 | 37:0|type:dandelion 443 | 38:0|type:poppy 444 | 38:1|type:blue_orchard 445 | 38:2|type:allium 446 | 38:3|type:houstonia 447 | 38:4|type:red_tulip 448 | 38:5|type:orange_tulip 449 | 38:6|type:white_tulip 450 | 38:7|type:pink_tulip 451 | 38:8|type:oxeye_daisy 452 | 175:0|half:lower,variant:sunflower,facing:east 453 | 175:1|half:lower,variant:syringa,facing:east 454 | 175:2|half:lower,variant:double_grass,facing:east 455 | 175:3|half:lower,variant:double_fern,facing:east 456 | 175:4|half:lower,variant:double_rose,facing:east 457 | 175:5|half:lower,variant:paeonia,facing:east 458 | 175:8|half:upper,variant:sunflower,facing:north 459 | 140:0|contents:empty,legacy_data:0 460 | 212:0|age:0 461 | 212:1|age:1 462 | 212:2|age:2 463 | 212:3|age:3 464 | 61:2|facing:north 465 | 61:3|facing:south 466 | 61:4|facing:west 467 | 61:5|facing:east 468 | 62:2|facing:north 469 | 62:3|facing:south 470 | 63:4|facing:west 471 | 62:5|facing:east 472 | 102:0|north:false,south:false,east:false,west:false 473 | 160:0|color:white,north:false,south:false,east:false,west:false 474 | 160:1|color:orange,north:false,south:false,east:false,west:false 475 | 160:2|color:magenta,north:false,south:false,east:false,west:false 476 | 160:3|color:lightBlue,north:false,south:false,east:false,west:false 477 | 160:4|color:yellow,north:false,south:false,east:false,west:false 478 | 160:5|color:lime,north:false,south:false,east:false,west:false 479 | 160:6|color:pink,north:false,south:false,east:false,west:false 480 | 160:7|color:gray,north:false,south:false,east:false,west:false 481 | 160:8|color:silver,north:false,south:false,east:false,west:false 482 | 160:9|color:cyan,north:false,south:false,east:false,west:false 483 | 160:10|color:purple,north:false,south:false,east:false,west:false 484 | 160:11|color:blue,north:false,south:false,east:false,west:false 485 | 160:12|color:brown,north:false,south:false,east:false,west:false 486 | 160:13|color:green,north:false,south:false,east:false,west:false 487 | 160:14|color:red,north:false,south:false,east:false,west:false 488 | 160:15|color:black,north:false,south:false,east:false,west:false 489 | 31:0|type:dead_bush 490 | 31:1|type:tall_grass 491 | 31:2|type:fern 492 | 2:0|snowy:false 493 | 170:0|axis:x 494 | 170:4|axis:y 495 | 170:8|axis:z 496 | 154:0|enabled:true,facing:down 497 | 154:2|enabled:true,facing:north 498 | 154:3|enabled:true,facing:south 499 | 154:4|enabled:true,facing:west 500 | 154:5|enabled:true,facing:east 501 | 101:0|north:false,south:false,east:false,west:false 502 | 91:0|facing:south 503 | 91:1|facing:west 504 | 91:2|facing:north 505 | 91:3|facing:east 506 | 91:4|facing:south 507 | 84:0|has_record:false 508 | 84:1|has_record:true 509 | 10:0|level:0 510 | 10:1|level:1 511 | 10:2|level:2 512 | 10:3|level:3 513 | 10:4|level:4 514 | 10:5|level:5 515 | 10:6|level:6 516 | 10:7|level:7 517 | 10:8|level:8 518 | 10:9|level:9 519 | 10:10|level:10 520 | 10:11|level:11 521 | 10:12|level:12 522 | 10:13|level:13 523 | 10:14|level:14 524 | 10:15|level:15 525 | 11:0|level:0 526 | 11:1|level:1 527 | 11:2|level:2 528 | 11:3|level:3 529 | 11:4|level:4 530 | 11:5|level:5 531 | 11:6|level:6 532 | 11:7|level:7 533 | 11:8|level:8 534 | 11:9|level:9 535 | 11:10|level:10 536 | 11:11|level:11 537 | 11:12|level:12 538 | 11:13|level:13 539 | 11:14|level:14 540 | 11:15|level:15 541 | 18:0|check_decay:false,decayable:true,variant:oak 542 | 18:1|check_decay:false,decayable:true,variant:spruce 543 | 18:2|check_decay:false,decayable:true,variant:birch 544 | 18:3|check_decay:false,decayable:true,variant:jungle 545 | 18:4|check_decay:false,decayable:false,variant:oak 546 | 18:5|check_decay:false,decayable:false,variant:spruce 547 | 18:6|check_decay:false,decayable:false,variant:birch 548 | 18:7|check_decay:false,decayable:false,variant:jungle 549 | 18:8|check_decay:true,decayable:true,variant:oak 550 | 18:9|check_decay:true,decayable:true,variant:spruce 551 | 18:10|check_decay:true,decayable:true,variant:birch 552 | 18:11|check_decay:true,decayable:true,variant:jungle 553 | 18:12|check_decay:false,decayable:false,variant:oak 554 | 18:13|check_decay:false,decayable:false,variant:spruce 555 | 18:14|check_decay:false,decayable:false,variant:birch 556 | 18:15|check_decay:false,decayable:false,variant:jungle 557 | 161:0|check_decay:false,decayable:true,variant:acacia 558 | 161:1|check_decay:false,decayable:true,variant:dark_oak 559 | 161:4|check_decay:false,decayable:false,variant:acacia 560 | 161:5|check_decay:false,decayable:false,variant:dark_oak 561 | 161:8|check_decay:true,decayable:true,variant:acacia 562 | 161:9|check_decay:true,decayable:true,variant:dark_oak 563 | 161:12|check_decay:false,decayable:false,variant:acacia 564 | 161:13|check_decay:false,decayable:false,variant:dark_oak 565 | 69:0|facing:down_x,powered:false 566 | 69:1|facing:east,powered:false 567 | 69:2|facing:west,powered:false 568 | 69:3|facing:south,powered:false 569 | 69:4|facing:north,powered:false 570 | 69:5|facing:up_z,powered:false 571 | 69:6|facing:up_x,powered:false 572 | 69:7|facing:down_z,powered:false 573 | 69:8|facing:down_x,powered:true 574 | 69:9|facing:east,powered:true 575 | 69:10|facing:west,powered:true 576 | 69:11|facing:south,powered:true 577 | 69:12|facing:north,powered:true 578 | 69:13|facing:up_z,powered:true 579 | 69:14|facing:up_x,powered:true 580 | 69:15|facing:down_z,powered:true 581 | 105:0|age:0,facing:up 582 | 105:1|age:1,facing:up 583 | 105:2|age:2,facing:up 584 | 105:3|age:3,facing:up 585 | 105:4|age:4,facing:up 586 | 105:5|age:5,facing:up 587 | 105:6|age:6,facing:up 588 | 105:7|age:7,facing:up 589 | 97:0|variant:stone 590 | 97:1|variant:cobblestonstone 591 | 97:2|variant:stone_brick 592 | 97:3|variant:mossy_brick 593 | 97:4|variant:cracked_brick 594 | 97:5|variant:chisled_brick 595 | 99:0|variant:east 596 | 99:1|variant:north 597 | 99:2|variant:north_east 598 | 99:3|variant:north_west 599 | 99:4|variant:south 600 | 99:5|variant:south_east 601 | 99:6|variant:south_west 602 | 99:7|variant:west 603 | 99:8|variant:center 604 | 99:9|variant:stem 605 | 99:10|variant:all_inside 606 | 99:14|variant:all_outside 607 | 99:15|variant:all_stem 608 | 100:0|variant:east 609 | 100:1|variant:north 610 | 100:2|variant:north_east 611 | 100:3|variant:north_west 612 | 100:4|variant:south 613 | 100:5|variant:south_east 614 | 100:6|variant:south_west 615 | 100:7|variant:west 616 | 100:8|variant:center 617 | 100:9|variant:stem 618 | 100:10|variant:all_inside 619 | 100:14|variant:all_outside 620 | 100:15|variant:all_stem 621 | 115:0|age:0 622 | 115:1|age:1 623 | 115:2|age:2 624 | 115:3|age:3 625 | 29:0|extended:false,facing:down 626 | 29:1|extended:false,facing:up 627 | 29:2|extended:false,facing:north 628 | 29:3|extended:false,facing:south 629 | 29:4|extended:false,facing:west 630 | 29:5|extended:false,facing:east 631 | 33:0|extended:false,facing:down 632 | 33:1|extended:false,facing:up 633 | 33:2|extended:false,facing:north 634 | 33:3|extended:false,facing:south 635 | 33:4|extended:false,facing:west 636 | 33:5|extended:false,facing:east 637 | 34:0|facing:down,short:false,type:normal 638 | 34:1|facing:up,short:false,type:normal 639 | 34:2|facing:north,short:false,type:normal 640 | 34:3|facing:south,short:false,type:normal 641 | 34:4|facing:west,short:false,type:normal 642 | 34:5|facing:east,short:false,type:normal 643 | 90:0|axis:x 644 | 90:2|axis:z 645 | 142:0|age:0 646 | 142:1|age:1 647 | 142:2|age:2 648 | 142:3|age:3 649 | 142:4|age:4 650 | 142:5|age:5 651 | 142:6|age:6 652 | 142:7|age:7 653 | 70:0|powered:false 654 | 70:1|powered:true 655 | 72:1|powered:false 656 | 72:1|powered:true 657 | 168:0|variant:prismarine 658 | 168:1|variant:prismarine_bricks 659 | 168:2|variant:dark_prismarine 660 | 86:0|facing:south 661 | 86:1|facing:west 662 | 86:2|facing:north 663 | 86:3|facing:east 664 | 86:4|facing:north 665 | 104:0|age:0,facing:up 666 | 104:1|age:1,facing:up 667 | 104:2|age:2,facing:up 668 | 104:3|age:3,facing:up 669 | 104:4|age:4,facing:up 670 | 104:5|age:5,facing:up 671 | 104:6|age:6,facing:up 672 | 104:7|age:7,facing:up 673 | 202:0|axis:7 674 | 202:4|axis:x 675 | 202:8|axis:z 676 | 155:0|variant:default 677 | 155:1|variant:chisled 678 | 155:2|variant:lines_y 679 | 155:3|variant:lines_z 680 | 155:4|variant:lines_x 681 | 157:0|powered:false,shape:north_south 682 | 157:1|powered:false,shape:east_west 683 | 157:2|powered:false,shape:ascending_north 684 | 157:3|powered:false,shape:ascending_south 685 | 157:4|powered:false,shape:ascending_east 686 | 157:5|powered:false,shape:ascending_west 687 | 157:8|powered:true,shape:north_south 688 | 157:9|powered:true,shape:east_west 689 | 157:10|powered:true,shape:ascending_north 690 | 157:11|powered:true,shape:ascending_south 691 | 157:12|powered:true,shape:ascending_east 692 | 157:13|powered:true,shape:ascending_west 693 | 28:0|powered:false,shape:north_south 694 | 28:1|powered:false,shape:east_west 695 | 28:2|powered:false,shape:ascending_north 696 | 28:3|powered:false,shape:ascending_south 697 | 28:4|powered:false,shape:ascending_east 698 | 28:5|powered:false,shape:ascending_west 699 | 28:8|powered:true,shape:north_south 700 | 28:9|powered:true,shape:east_west 701 | 28:10|powered:true,shape:ascending_north 702 | 28:11|powered:true,shape:ascending_south 703 | 28:12|powered:true,shape:ascending_east 704 | 28:13|powered:true,shape:ascending_west 705 | 27:0|powered:false,shape:north_south 706 | 27:1|powered:false,shape:east_west 707 | 27:2|powered:false,shape:ascending_north 708 | 27:3|powered:false,shape:ascending_south 709 | 27:4|powered:false,shape:ascending_east 710 | 27:5|powered:false,shape:ascending_west 711 | 27:8|powered:true,shape:north_south 712 | 27:9|powered:true,shape:east_west 713 | 27:10|powered:true,shape:ascending_north 714 | 27:11|powered:true,shape:ascending_south 715 | 27:12|powered:true,shape:ascending_east 716 | 27:13|powered:true,shape:ascending_west 717 | 24:0|variant:sandstone 718 | 24:1|variant:chiseled_sandstone 719 | 24:2|variant:smooth_sandstone 720 | 179:0|variant:red_sandstone 721 | 179:1|variant:chiseled_red_sandstone 722 | 179:2|variant:smooth_red_sandstone 723 | 149:0|facing:south,mode:compact,powered:false 724 | 149:1|facing:west,mode:compact,powered:false 725 | 149:2|facing:north,mode:compact,powered:false 726 | 149:3|facing:east,mode:compact,powered:false 727 | 149:4|facing:south,mode:subtract,powered:false 728 | 149:5|facing:west,mode:subtract,powered:false 729 | 149:6|facing:north,mode:subtract,powered:false 730 | 149:7|facing:east,mode:subtract,powered:false 731 | 149:8|facing:south,mode:subtract,powered:true 732 | 149:9|facing:west,mode:subtract,powered:true 733 | 149:10|facing:north,mode:subtract,powered:true 734 | 149:11|facing:east,mode:subtract,powered:true 735 | 55:0|north:none,south:none,east:none,west:none,power:0 736 | 55:1|north:none,south:none,east:none,west:none,power:1 737 | 55:2|north:none,south:none,east:none,west:none,power:2 738 | 55:3|north:none,south:none,east:none,west:none,power:3 739 | 55:4|north:none,south:none,east:none,west:none,power:4 740 | 55:5|north:none,south:none,east:none,west:none,power:5 741 | 55:6|north:none,south:none,east:none,west:none,power:6 742 | 55:7|north:none,south:none,east:none,west:none,power:7 743 | 55:8|north:none,south:none,east:none,west:none,power:8 744 | 55:9|north:none,south:none,east:none,west:none,power:9 745 | 55:10|north:none,south:none,east:none,west:none,power:10 746 | 55:11|north:none,south:none,east:none,west:none,power:11 747 | 55:12|north:none,south:none,east:none,west:none,power:12 748 | 55:13|north:none,south:none,east:none,west:none,power:13 749 | 55:14|north:none,south:none,east:none,west:none,power:14 750 | 55:15|north:none,south:none,east:none,west:none,power:15 751 | 76:1|facing:east 752 | 76:2|facing:west 753 | 76:3|facing:south 754 | 76:4|facing:north 755 | 76:5|facing:up 756 | 75:1|facing:east 757 | 75:2|facing:west 758 | 75:3|facing:south 759 | 75:4|facing:north 760 | 75:5|facing:up 761 | 50:1|facing:east 762 | 50:2|facing:west 763 | 50:3|facing:south 764 | 50:4|facing:north 765 | 50:5|facing:up 766 | 12:0|variant:sand 767 | 12:1|variant:red_sand 768 | 6:0|stage:0,type:oak 769 | 6:1|stage:0,type:spruce 770 | 6:2|stage:0,type:birch 771 | 6:3|stage:0,type:jungle 772 | 6:4|stage:0,type:acacia 773 | 6:5|stage:0,type:dark_oak 774 | 63:0|rotation:south 775 | 63:1|rotation:south-southwest 776 | 63:2|rotation:southwest 777 | 63:3|rotation:west-southwest 778 | 63:4|rotation:west 779 | 63:5|rotation:west-northwest 780 | 63:6|rotation:northwest 781 | 63:7|rotation:north-northwest 782 | 63:8|rotation:north 783 | 63:9|rotation:north-northeast 784 | 63:10|rotation:northeast 785 | 63:11|rotation:east-northeast 786 | 63:12|rotation:east 787 | 63:13|rotation:east-southeast 788 | 63:14|rotation:southeast 789 | 63:15|rotation:south-southeast 790 | 68:2|facing:north 791 | 68:3|facing:south 792 | 68:4|facing:west 793 | 68:5|facing:east 794 | 144:1|facing:up,nodrop:true 795 | 144:2|facing:north,nodrop:true 796 | 144:3|facing:south,nodrop:true 797 | 144:4|facing:east,nodrop:true 798 | 144:5|facing:west,nodrop:true 799 | 43:0|seamless:false,variant:stone 800 | 43:1|seamless:false,variant:sandstone 801 | 43:2|seamless:false,variant:wood_old 802 | 43:3|seamless:false,variant:cobblestone 803 | 43:4|seamless:false,variant:brick 804 | 43:5|seamless:false,variant:stone_brick 805 | 43:6|seamless:false,variant:nether_brick 806 | 43:7|seamless:false,variant:quartz 807 | 43:8|seamless:true,variant:stone 808 | 43:9|seamless:true,variant:sandstone 809 | 43:15|seamless:true,variant:quartz 810 | 44:0|half:bottom,variant:stone 811 | 44:1|half:bottom,variant:sandstone 812 | 44:2|half:bottom,variant:wood_old 813 | 44:3|half:bottom,variant:cobblestone 814 | 44:4|half:bottom,variant:brick 815 | 44:5|half:bottom,variant:stone_brick 816 | 44:6|half:bottom,variant:nether_brick 817 | 44:7|half:bottom,variant:quartz 818 | 44:8|half:top,variant:stone 819 | 44:9|half:top,variant:sandstone 820 | 44:10|half:top,variant:wood_old 821 | 44:11|half:top,variant:cobblestone 822 | 44:12|half:top,variant:brick 823 | 44:13|half:top,variant:stone_brick 824 | 44:14|half:top,variant:nether_brick 825 | 44:15|half:top,variant:quartz 826 | 125:0|variant:oak 827 | 125:1|variant:spruce 828 | 125:2|variant:birch 829 | 125:3|variant:jungle 830 | 125:4|variant:acacia 831 | 125:5|variant:dark_oak 832 | 126:0|half:bottom,variant:oak 833 | 126:1|half:bottom,variant:spruce 834 | 126:2|half:bottom,variant:birch 835 | 126:3|half:bottom,variant:jungle 836 | 126:4|half:bottom,variant:acacia 837 | 126:5|half:bottom,variant:dark_oak 838 | 126:6|half:top,variant:oak 839 | 126:7|half:top,variant:spruce 840 | 126:8|half:top,variant:birch 841 | 126:9|half:top,variant:jungle 842 | 126:10|half:top,variant:acacia 843 | 126:11|half:top,variant:dark_oak 844 | 181:0|seamless:false,variant:red_sandstone 845 | 181:8|seamless:true,variant:red_standstone 846 | 182:0|half:bottom,variant:red_sandstone 847 | 182:8|half:top,variant:red_sandstone 848 | 204:0|variant:default 849 | 205:0|half:bottom,variant:default 850 | 205:1|half:top,variant:default 851 | 78:0|layers:1 852 | 78:1|layers:2 853 | 78:2|layers:3 854 | 78:3|layers:4 855 | 78:4|layers:5 856 | 78:5|layers:6 857 | 78:6|layers:7 858 | 78:7|layers:8 859 | 19:0|wet:false 860 | 19:1|wet:true 861 | 159:0|color:white 862 | 159:1|color:orange 863 | 159:2|color:magenta 864 | 159:3|color:lightBlue 865 | 159:4|color:yellow 866 | 159:5|color:lime 867 | 159:6|color:pink 868 | 159:7|color:gray 869 | 159:8|color:silver 870 | 159:9|color:cyan 871 | 159:10|color:purple 872 | 159:11|color:blue 873 | 159:12|color:brown 874 | 159:13|color:green 875 | 159:14|color:red 876 | 159:15|color:black 877 | 95:0|color:white 878 | 95:1|color:orange 879 | 95:2|color:magenta 880 | 95:3|color:lightBlue 881 | 95:4|color:yellow 882 | 95:5|color:lime 883 | 95:6|color:pink 884 | 95:7|color:gray 885 | 95:8|color:silver 886 | 95:9|color:cyan 887 | 95:10|color:purple 888 | 95:11|color:blue 889 | 95:12|color:brown 890 | 95:13|color:green 891 | 95:14|color:red 892 | 95:15|color:black 893 | 53:0|facing:east,half:bottom,shape:straight 894 | 53:1|facing:west,half:bottom,shape:straight 895 | 53:2|facing:south,half:bottom,shape:straight 896 | 53:3|facing:north,half:bottom,shape:straight 897 | 53:4|facing:east,half:top,shape:straight 898 | 53:5|facing:west,half:top,shape:straight 899 | 53:6|facing:south,half:top,shape:straight 900 | 53:7|facing:north,half:top,shape:straight 901 | 67:0|facing:south,half:bottom,shape:straight 902 | 67:1|facing:north,half:bottom,shape:straight 903 | 67:2|facing:east,half:bottom,shape:straight 904 | 67:3|facing:west,half:bottom,shape:straight 905 | 67:4|facing:south,half:top,shape:straight 906 | 67:5|facing:north,half:top,shape:straight 907 | 67:6|facing:east,half:top,shape:straight 908 | 67:7|facing:west,half:top,shape:straight 909 | 108:0|facing:north,half:bottom,shape:straight 910 | 108:1|facing:south,half:bottom,shape:straight 911 | 108:2|facing:east,half:bottom,shape:straight 912 | 108:3|facing:west,half:bottom,shape:straight 913 | 108:4|facing:north,half:top,shape:straight 914 | 108:5|facing:south,half:top,shape:straight 915 | 108:6|facing:east,half:top,shape:straight 916 | 108:7|facing:west,half:top,shape:straight 917 | 109:0|facing:north,half:bottom,shape:straight 918 | 109:1|facing:sout,half:bottom,shape:straight 919 | 109:2|facing:east,half:bottom,shape:straight 920 | 109:3|facing:west,half:bottom,shape:straight 921 | 109:4|facing:north,half:top,shape:straight 922 | 109:5|facing:south,half:top,shape:straight 923 | 109:6|facing:east,half:top,shape:straight 924 | 109:7|facing:west,half:top,shape:straight 925 | 114:0|facing:north,half:bottom,shape:straight 926 | 114:1|facing:south,half:bottom,shape:straight 927 | 114:2|facing:east,half:bottom,shape:straight 928 | 114:3|facing:west,half:bottom,shape:straight 929 | 114:4|facing:north,half:top,shape:straight 930 | 114:5|facing:south,half:top,shape:straight 931 | 114:6|facing:east,half:top,shape:straight 932 | 114:7|facing:west,half:top,shape:straight 933 | 128:0|facing:north,half:bottom,shape:straight 934 | 128:1|facing:south,half:bottom,shape:straight 935 | 128:2|facing:east,half:bottom,shape:straight 936 | 128:3|facing:west,half:bottom,shape:straight 937 | 128:4|facing:north,half:top,shape:straight 938 | 128:5|facing:south,half:top,shape:straight 939 | 128:6|facing:east,half:top,shape:straight 940 | 128:7|facing:west,half:top,shape:straight 941 | 134:0|facing:north,half:bottom,shape:straight 942 | 134:1|facing:south,half:bottom,shape:straight 943 | 134:2|facing:east,half:bottom,shape:straight 944 | 134:3|facing:west,half:bottom,shape:straight 945 | 134:4|facing:north,half:top,shape:straight 946 | 134:5|facing:south,half:top,shape:straight 947 | 134:6|facing:east,half:top,shape:straight 948 | 134:7|facing:west,half:top,shape:straight 949 | 135:0|facing:north,half:bottom,shape:straight 950 | 135:1|facing:south,half:bottom,shape:straight 951 | 135:2|facing:east,half:bottom,shape:straight 952 | 135:3|facing:west,half:bottom,shape:straight 953 | 135:4|facing:north,half:top,shape:straight 954 | 135:5|facing:south,half:top,shape:straight 955 | 135:6|facing:east,half:top,shape:straight 956 | 135:7|facing:west,half:top,shape:straight 957 | 136:0|facing:north,half:bottom,shape:straight 958 | 136:1|facing:south,half:bottom,shape:straight 959 | 136:2|facing:east,half:bottom,shape:straight 960 | 136:3|facing:west,half:bottom,shape:straight 961 | 136:4|facing:north,half:top,shape:straight 962 | 136:5|facing:south,half:top,shape:straight 963 | 136:6|facing:east,half:top,shape:straight 964 | 136:7|facing:west,half:top,shape:straight 965 | 156:0|facing:north,half:bottom,shape:straight 966 | 156:1|facing:south,half:bottom,shape:straight 967 | 156:2|facing:east,half:bottom,shape:straight 968 | 156:3|facing:west,half:bottom,shape:straight 969 | 156:4|facing:north,half:top,shape:straight 970 | 156:5|facing:south,half:top,shape:straight 971 | 156:6|facing:east,half:top,shape:straight 972 | 156:7|facing:west,half:top,shape:straight 973 | 163:0|facing:north,half:bottom,shape:straight 974 | 163:1|facing:south,half:bottom,shape:straight 975 | 163:2|facing:east,half:bottom,shape:straight 976 | 163:3|facing:west,half:bottom,shape:straight 977 | 163:4|facing:north,half:top,shape:straight 978 | 163:5|facing:south,half:top,shape:straight 979 | 163:6|facing:east,half:top,shape:straight 980 | 163:7|facing:west,half:top,shape:straight 981 | 164:0|facing:north,half:bottom,shape:straight 982 | 164:1|facing:south,half:bottom,shape:straight 983 | 164:2|facing:east,half:bottom,shape:straight 984 | 164:3|facing:west,half:bottom,shape:straight 985 | 164:4|facing:north,half:top,shape:straight 986 | 164:5|facing:south,half:top,shape:straight 987 | 164:6|facing:east,half:top,shape:straight 988 | 164:7|facing:west,half:top,shape:straight 989 | 180:0|facing:north,half:bottom,shape:straight 990 | 180:1|facing:south,half:bottom,shape:straight 991 | 180:2|facing:east,half:bottom,shape:straight 992 | 180:3|facing:west,half:bottom,shape:straight 993 | 180:4|facing:north,half:top,shape:straight 994 | 180:5|facing:south,half:top,shape:straight 995 | 180:6|facing:east,half:top,shape:straight 996 | 180:7|facing:west,half:top,shape:straight 997 | 203:0|facing:north,half:bottom,shape:straight 998 | 203:1|facing:south,half:bottom,shape:straight 999 | 203:2|facing:east,half:bottom,shape:straight 1000 | 203:3|facing:west,half:bottom,shape:straight 1001 | 203:4|facing:north,half:top,shape:straight 1002 | 203:5|facing:south,half:top,shape:straight 1003 | 203:6|facing:east,half:top,shape:straight 1004 | 203:7|facing:west,half:top,shape:straight 1005 | 98:0|variant:stonebrick 1006 | 98:1|variant:mossy_stonebrick 1007 | 98:2|variant:cracked_stonebrick 1008 | 98:3|variant:chisled_stonebrick 1009 | 83:0|age:0 1010 | 83:1|age:1 1011 | 83:2|age:2 1012 | 83:3|age:3 1013 | 83:4|age:4 1014 | 83:5|age:5 1015 | 83:6|age:6 1016 | 83:7|age:7 1017 | 83:8|age:8 1018 | 83:9|age:9 1019 | 83:10|age:10 1020 | 83:11|age:11 1021 | 83:12|age:12 1022 | 83:13|age:13 1023 | 83:14|age:14 1024 | 83:15|age:15 1025 | 46:0|explode:false 1026 | 46:1|explode:true 1027 | 96:0|facing:north,half:bottom,open:false 1028 | 96:1|facing:south,half:bottom,open:false 1029 | 96:2|facing:west,half:bottom,open:false 1030 | 96:3|facing:east,half:bottom,open:false 1031 | 96:4|facing:north,half:bottom,open:true 1032 | 96:5|facing:south,half:bottom,open:true 1033 | 96:6|facing:west,half:bottom,open:true 1034 | 96:7|facing:east,half:bottom,open:true 1035 | 96:8|facing:north,half:top,open:false 1036 | 96:9|facing:south,half:top,open:false 1037 | 96:10|facing:west,half:top,open:false 1038 | 96:11|facing:east,half:top,open:false 1039 | 96:12|facing:north,half:top,open:true 1040 | 96:13|facing:south,half:top,open:true 1041 | 96:14|facing:west,half:top,open:true 1042 | 96:15|facing:east,half:top,open:true 1043 | 132:0|attached:false,disarmed:false,north:false,south:false,east:false,west:false,powered:false 1044 | 132:1|attached:false,disarmed:false,north:false,south:false,east:false,west:false,powered:true 1045 | 132:2|attached:false,disarmed:false,north:false,south:false,east:false,west:false,powered:false 1046 | 132:3|attached:false,disarmed:false,north:false,south:false,east:false,west:false,powered:true 1047 | 132:4|attached:true,disarmed:false,north:false,south:false,east:false,west:false,powered:false 1048 | 132:5|attached:true,disarmed:false,north:false,south:false,east:false,west:false,powered:true 1049 | 132:6|attached:false,disarmed:false,north:false,south:false,east:false,west:false,powered:false 1050 | 132:7|attached:true,disarmed:false,north:false,south:false,east:false,west:false,powered:true 1051 | 132:8|attached:false,disarmed:true,north:false,south:false,east:false,west:false,powered:false 1052 | 132:9|attached:false,disarmed:true,north:false,south:false,east:false,west:false,powered:true 1053 | 132:10|attached:false,disarmed:true,north:false,south:false,east:false,west:false,powered:false 1054 | 132:11|attached:false,disarmed:true,north:false,south:false,east:false,west:false,powered:true 1055 | 132:12|attached:true,disarmed:true,north:false,south:false,east:false,west:false,powered:false 1056 | 132:13|attached:true,disarmed:true,north:false,south:false,east:false,west:false,powered:true 1057 | 132:14|attached:false,disarmed:false,north:false,south:false,east:false,west:false,powered:false 1058 | 132:15|attached:true,disarmed:true,north:false,south:false,east:false,west:false,powered:true 1059 | 131:0|attached:false,facing:south,powered:false 1060 | 131:1|attached:false,facing:west,powered:false 1061 | 131:2|attached:false,facing:north,powered:false 1062 | 131:3|attached:false,facing:east,powered:false 1063 | 131:4|attached:true,facing:south,powered:false 1064 | 131:5|attached:true,facing:west,powered:false 1065 | 131:6|attached:true,facing:north,powered:false 1066 | 131:7|attached:true,facing:east,powered:false 1067 | 131:8|attached:false,facing:south,powered:true 1068 | 131:9|attached:false,facing:west,powered:true 1069 | 131:10|attached:false,facing:north,powered:true 1070 | 131:11|attached:false,facing:east,powered:true 1071 | 131:12|attached:true,facing:south,powered:true 1072 | 131:13|attached:true,facing:west,powered:true 1073 | 131:14|attached:true,facing:north,powered:true 1074 | 131:15|attached:true,facing:north,powered:true 1075 | 106:0|north:false,south:false,east:false,west:false,up:true 1076 | 106:1|north:false,south:true,east:false,west:false,up:false 1077 | 106:2|north:false,south:false,east:true,west:false,up:false 1078 | 106:4|north:true,south:false,east:false,west:false,up:false 1079 | 106:8|north:false,south:false,east:true,west:false,up:false 1080 | 9:0|level:0 1081 | 9:1|level:1 1082 | 9:2|level:2 1083 | 9:3|level:3 1084 | 9:4|level:4 1085 | 9:5|level:5 1086 | 9:6|level:6 1087 | 9:7|level:7 1088 | 9:8|level:8 1089 | 9:9|level:9 1090 | 9:10|level:10 1091 | 9:11|level:11 1092 | 9:12|level:12 1093 | 9:13|level:13 1094 | 9:14|level:14 1095 | 9:15|level:15 1096 | 8:0|level:0 1097 | 8:1|level:1 1098 | 8:2|level:2 1099 | 8:3|level:3 1100 | 8:4|level:4 1101 | 8:5|level:5 1102 | 8:6|level:6 1103 | 8:7|level:7 1104 | 8:8|level:8 1105 | 8:9|level:9 1106 | 8:10|level:10 1107 | 8:11|level:11 1108 | 8:12|level:12 1109 | 8:13|level:13 1110 | 8:14|level:14 1111 | 8:15|level:15 1112 | 148:0|power:0 1113 | 148:1|power:1 1114 | 148:2|power:2 1115 | 148:3|power:3 1116 | 148:4|power:4 1117 | 148:5|power:5 1118 | 148:6|power:6 1119 | 148:7|power:7 1120 | 148:8|power:8 1121 | 148:9|power:9 1122 | 148:10|power:10 1123 | 148:11|power:11 1124 | 148:12|power:12 1125 | 148:13|power:13 1126 | 148:14|power:14 1127 | 148:15|power:15 1128 | 147:0|power:0 1129 | 147:1|power:1 1130 | 147:2|power:2 1131 | 147:3|power:3 1132 | 147:4|power:4 1133 | 147:5|power:5 1134 | 147:6|power:6 1135 | 147:7|power:7 1136 | 147:8|power:8 1137 | 147:9|power:9 1138 | 147:10|power:10 1139 | 147:11|power:11 1140 | 147:12|power:12 1141 | 147:13|power:13 1142 | 147:14|power:14 1143 | 147:15|power:15 1144 | 296:0|age:0 1145 | 296:1|age:1 1146 | 296:2|age:2 1147 | 296:3|age:3 1148 | 296:4|age:4 1149 | 296:5|age:5 1150 | 296:6|age:6 1151 | 296:7|age:7 1152 | 5:0|variant:oak 1153 | 5:1|variant:spruce 1154 | 5:2|variant:birch 1155 | 5:3|variant:jungle 1156 | 5:4|variant:acacia 1157 | 5:5|variant:dark_oak -------------------------------------------------------------------------------- /schematics/bandit-camp-2.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/bandit-camp-2.schematic -------------------------------------------------------------------------------- /schematics/caravan-1.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/caravan-1.schematic -------------------------------------------------------------------------------- /schematics/cart.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/cart.schematic -------------------------------------------------------------------------------- /schematics/island-with-trees.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/island-with-trees.schematic -------------------------------------------------------------------------------- /schematics/luxury-house.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/luxury-house.schematic -------------------------------------------------------------------------------- /schematics/statue-sword.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/statue-sword.schematic -------------------------------------------------------------------------------- /schematics/tower-lg.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/tower-lg.schematic -------------------------------------------------------------------------------- /schematics/train-engine.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/train-engine.schematic -------------------------------------------------------------------------------- /schematics/wood-pile-xs.schematic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TaylorWilton/Schematic2Structure/7fcf087b9639b52d839faa60a66e711374710c6c/schematics/wood-pile-xs.schematic -------------------------------------------------------------------------------- /src/Block.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Block Class - Contains information about each individual block in the structure 3 | */ 4 | public class Block { 5 | private int id; 6 | private String properties; 7 | private String key; 8 | private int data; 9 | private String name; 10 | 11 | /** 12 | * Block Constructor, creates individual block 13 | * 14 | * @param id - block id associated with this block 15 | * @param name - name of the block 16 | * @param data - any block data 17 | */ 18 | public Block(int id, String name, int data) { 19 | this.id = id; 20 | this.name = name; 21 | this.data = data; 22 | 23 | // set the key of the object 24 | this.key = id + ":" + data; 25 | 26 | } 27 | 28 | /** 29 | * generate a hashcode for each type of block, used for the palette 30 | * 31 | * the hashCode is unique to each different type of block, rather than to each unique block. 32 | * It is used for checking if a block is already in the palette or not. 33 | * 34 | * @return - the hashcode corresponding to this type of block; 35 | */ 36 | @Override 37 | public int hashCode() { 38 | 39 | return ((id * 10) + data) * 10; 40 | } 41 | 42 | public String getProperties() { 43 | return properties; 44 | } 45 | 46 | public String getKey() { 47 | return key; 48 | } 49 | 50 | public String getName() { 51 | return name; 52 | } 53 | 54 | public void setProperties(String _properties) { 55 | this.properties = _properties; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Entity.java: -------------------------------------------------------------------------------- 1 | import org.jnbt.*; 2 | 3 | import java.util.ArrayList; 4 | import java.util.HashMap; 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | class Entity { 9 | // the tag in structure format 10 | private CompoundTag entityTag; 11 | 12 | /** 13 | * Entity Class - deals with all the fun parts of NBT! 14 | * 15 | * @param ct - the root tag of the entity 16 | */ 17 | Entity(CompoundTag ct) { 18 | // get a map of all the tags 19 | Map entityMap = ct.getValue(); 20 | 21 | // get pos list, we can reuse it 22 | List posList = (List) entityMap.get("Pos").getValue(); 23 | 24 | // save compound tag, so we can deal with the rest of the stuff later 25 | 26 | // make a hashmap for the tags 27 | HashMap entity = new HashMap<>(); 28 | // chuck everything in it 29 | entity.put("pos", new ListTag("pos", DoubleTag.class, posList)); 30 | 31 | CompoundTag entityNBTTag = new CompoundTag("nbt", entityMap); 32 | 33 | 34 | entity.put("nbt", entityNBTTag);// hope this works 35 | // make it a tag! 36 | entityTag = new CompoundTag("Entity", entity); 37 | 38 | } 39 | 40 | /** 41 | * getStructureFormat 42 | * 43 | * @return - a CompoundTag formatted correctly for Mojang's NBT Structure Specifications 44 | */ 45 | CompoundTag getStructureFormat() { 46 | return entityTag; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Schematic2Structure.java: -------------------------------------------------------------------------------- 1 | import org.jnbt.*; 2 | 3 | import java.io.*; 4 | import java.util.ArrayList; 5 | import java.util.HashMap; 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public class Schematic2Structure { 10 | 11 | /** 12 | * Main Method 13 | * 14 | * @param args - the file name of the schematic 15 | */ 16 | public static void main(String args[]) { 17 | String blocksFile = "blocks.csv"; 18 | String propertiesFile = "properties.csv"; 19 | String schematicFile; 20 | 21 | if (!validateSchematicFile(args[0])) { 22 | String usage = "Usage: Schematic2Structure \n" + 23 | "\t\t - a Schematic File created by a program like MCEdit or MC Noteblock Studio, with the .schematic extension\n" + 24 | "\t\t - where you want the resulting nbt structure to be saved\n" + 25 | "\t\t(this is optional, and if not provided, will default to the name of the schematic file with the .nbt extension)"; 26 | 27 | System.out.println(usage); 28 | return; 29 | } else { 30 | schematicFile = args[0]; 31 | System.out.println("Converting Schematic file " + schematicFile); 32 | } 33 | 34 | // hashmaps for blocks & properties respectively 35 | HashMap blockMap = new HashMap<>(); 36 | HashMap propertiesMap = new HashMap<>(); 37 | 38 | HashMap palette = new HashMap<>(); 39 | ArrayList structureBlocks = new ArrayList<>(); 40 | 41 | // list for entities 42 | ArrayList entityList = new ArrayList<>(); 43 | 44 | NBTInputStream schematicNBT; 45 | 46 | String line; 47 | 48 | try { 49 | 50 | FileReader fileReader = new FileReader(blocksFile); 51 | BufferedReader bufferedReader = new BufferedReader(fileReader); 52 | 53 | /* 54 | * Read the blocklist csv file, and add all the items to the hashmap created above 55 | */ 56 | while ((line = bufferedReader.readLine()) != null) { 57 | /* 58 | * Split the line 59 | * The data format is as follows: 60 | * data[0] - the block id 61 | * data[1] - the English name of the block (ex Stone) 62 | * data[2] - the Minecraft name of the block (ex minecraft:stone) 63 | * 64 | * data[1] currently has no use 65 | */ 66 | 67 | String[] data = line.split(","); 68 | // the blockID that Minecraft uses 69 | int id = Integer.parseInt(data[0]); 70 | // the block name that Minecraft uses (ex minecraft:stone, rather than Stone) 71 | String blockName = data[2]; 72 | 73 | // add to the map 74 | blockMap.put(id, blockName); 75 | 76 | } 77 | // close current file 78 | fileReader.close(); 79 | 80 | // open the properties file 81 | fileReader = new FileReader(propertiesFile); 82 | bufferedReader = new BufferedReader(fileReader); 83 | 84 | // Read the properties file 85 | while ((line = bufferedReader.readLine()) != null) { 86 | String[] data = line.split("\\|"); 87 | 88 | String key = data[0]; 89 | String properties = data[1]; 90 | propertiesMap.put(key, properties); 91 | } 92 | 93 | // Open a new filestream for the schematic 94 | FileInputStream fis = new FileInputStream(schematicFile); 95 | schematicNBT = new NBTInputStream(fis); 96 | 97 | // get a HashMap of the schematic 98 | Map schematicMap = (Map) schematicNBT.readTag().getValue(); 99 | 100 | short width = (short) ((Tag) schematicMap.get("Height")).getValue(); 101 | short height = (short) ((Tag) schematicMap.get("Width")).getValue(); 102 | short length = (short) ((Tag) schematicMap.get("Length")).getValue(); 103 | 104 | // get entities & tile entitites, but keep them in their current form for now 105 | List entities = (List) schematicMap.get("Entities").getValue(); 106 | List tileEntitles = (List) schematicMap.get("TileEntities").getValue(); 107 | 108 | // set up size list now, because we have the data and we can move on now 109 | ArrayList sizeList = new ArrayList<>(); 110 | sizeList.add(new IntTag("length", length)); 111 | sizeList.add(new IntTag("width", width)); 112 | sizeList.add(new IntTag("height", height)); 113 | 114 | // loop through the entities - think of the overhead 115 | for (CompoundTag ct : entities) { 116 | Entity e = new Entity(ct); 117 | // get the compound tag 118 | CompoundTag entityTag = e.getStructureFormat(); 119 | // chuck it in the list 120 | entityList.add(entityTag); 121 | } 122 | // do it all over again for tile entities 123 | for(CompoundTag ct : tileEntitles){ 124 | TileEntity e = new TileEntity(ct); 125 | CompoundTag entityTag = e.getStructureFormat(); 126 | entityList.add(entityTag); 127 | } 128 | 129 | 130 | ListTag entityListTag = new ListTag("entities", CompoundTag.class, entityList); 131 | ListTag sizeListTag = new ListTag("size", IntTag.class, sizeList); 132 | 133 | // validate the dimensions to ensure that structure is the right size 134 | // (i.e 32 blocks or smaller in each dimension) 135 | // this is done now, so that time isn't wasted reading all the blocks 136 | if (!validateStructure(width, height, length)) { 137 | System.out.println("Structure is too large!"); 138 | return; 139 | } 140 | 141 | 142 | // note - java byte's are signed... 143 | byte[] schematicBlocks = (byte[]) schematicMap.get("Blocks").getValue(); 144 | byte[] schematicBlockData = (byte[]) schematicMap.get("Data").getValue(); 145 | 146 | for (int i = 0; i < schematicBlocks.length; i++) { 147 | int blockId = schematicBlocks[i] & 0xff; 148 | int data = schematicBlockData[i] & 0xff; 149 | 150 | String name = blockMap.get(blockId); 151 | 152 | Block b = new Block(blockId, name, data); 153 | 154 | // add to the list of blocks 155 | structureBlocks.add(b); 156 | 157 | int hash = b.hashCode(); 158 | String key = b.getKey(); 159 | // get associated properties and set them for the block 160 | if (propertiesMap.containsKey(key)) { 161 | b.setProperties(propertiesMap.get(key)); 162 | } 163 | // if the block isn't already in the palette, add it now 164 | if (!palette.containsKey(hash)) { 165 | palette.put(hash, b); 166 | } 167 | 168 | } 169 | 170 | // ArrayList of compound tags, that will eventually become part of the palette in the structure 171 | ArrayList paletteCompoundList = new ArrayList<>(); 172 | 173 | // Loop over items in palette 174 | for (int i = 0; i < palette.values().toArray().length; i++) { 175 | // current block 176 | Block current = (Block) (palette.values().toArray())[i]; 177 | 178 | // properties 179 | String blockProperties = current.getProperties(); 180 | 181 | // if the block has properties then loop though them and add them to a compound list 182 | if (blockProperties != null && blockProperties.length() > 0) { 183 | HashMap blockMapCompound = new HashMap<>(); 184 | String[] blockPropertiesArray = blockProperties.split(","); 185 | HashMap propertiesMapCompound = new HashMap<>(); 186 | 187 | // Loop through the block properties 188 | for (int j = 0; j < blockPropertiesArray.length; j++) { 189 | String blockProperty = blockPropertiesArray[j]; 190 | String[] result = blockProperty.split(":"); 191 | propertiesMapCompound.put(String.valueOf(j), new StringTag(result[0], result[1])); 192 | } 193 | blockMapCompound.put("Properties", new CompoundTag("Properties", propertiesMapCompound)); 194 | blockMapCompound.put("Name", new StringTag("Name", current.getName())); 195 | paletteCompoundList.add(new CompoundTag("block", blockMapCompound)); 196 | 197 | } else { // otherwise just make a compound tag. 198 | HashMap blockMapCompound = new HashMap<>(); 199 | blockMapCompound.put("Name", new StringTag("Name", current.getName())); 200 | paletteCompoundList.add(new CompoundTag("block", blockMapCompound)); 201 | } 202 | 203 | } 204 | ListTag paletteListTag = new ListTag("palette", CompoundTag.class, paletteCompoundList); 205 | ArrayList blockCompoundList = new ArrayList<>(); 206 | 207 | Object[] hashesArray = palette.keySet().toArray(); 208 | 209 | ArrayList paletteHashes = new ArrayList<>(); 210 | 211 | for (Object aHashesArray : hashesArray) { 212 | paletteHashes.add((Integer) aHashesArray); 213 | } 214 | 215 | // loop over all the blocks 216 | // Sorted by height (bottom to top) then length then width -- the index of the block at X,Y,Z is (Y×length + Z)×width + X 217 | for (int z = 0; z < length; z++) { 218 | for (int y = 0; y < width; y++) { 219 | for (int x = 0; x < height; x++) { 220 | int position = (y * length + z) * height + x; 221 | Block current = structureBlocks.get(position); 222 | 223 | int index = paletteHashes.indexOf(current.hashCode()); 224 | 225 | HashMap itemMap = new HashMap<>(); 226 | ArrayList pos = new ArrayList<>(3); 227 | 228 | pos.add(new IntTag("x", z)); 229 | pos.add(new IntTag("y", y)); 230 | pos.add(new IntTag("z", x)); 231 | 232 | 233 | itemMap.put("pos", new ListTag("pos", IntTag.class, pos)); 234 | itemMap.put("state", new IntTag("state", index)); 235 | 236 | CompoundTag blockCompound = new CompoundTag("block", itemMap); 237 | 238 | blockCompoundList.add(blockCompound); 239 | } 240 | } 241 | } 242 | 243 | ListTag blockListTag = new ListTag("blocks", CompoundTag.class, blockCompoundList); 244 | 245 | HashMap structureMap = new HashMap<>(); 246 | structureMap.put("blocks", blockListTag); 247 | structureMap.put("palette", paletteListTag); 248 | structureMap.put("entities", entityListTag); 249 | structureMap.put("size", sizeListTag); 250 | structureMap.put("author", new StringTag("author", "KingAmles")); 251 | structureMap.put("version", new IntTag("version", 1)); 252 | 253 | CompoundTag structureTag = new CompoundTag("structure", structureMap); 254 | 255 | String output = (schematicFile.split("\\."))[0] + ".nbt"; 256 | System.out.println("Structure saved at " + output); 257 | FileOutputStream fos = new FileOutputStream(output); 258 | NBTOutputStream NBToutput = new NBTOutputStream(fos); 259 | 260 | NBToutput.writeTag(structureTag); 261 | NBToutput.close(); 262 | 263 | 264 | } catch (FileNotFoundException ex) { 265 | System.out.println("Unable to open file " + ex.getMessage()); 266 | } catch (IOException ex) { 267 | System.out.println("Error reading file"); 268 | } catch (NumberFormatException ex) { 269 | System.out.println("Not a valid number"); 270 | } 271 | } 272 | /** 273 | * validates the structure parameters to make sure that the structure is a valid size 274 | * 275 | * @param h height 276 | * @param w width 277 | * @param l length 278 | * @return true if valid, false if invalid 279 | */ 280 | static boolean validateStructure(int h, int w, int l) { 281 | return ((h < 33 && w < 33 && l < 33) && (h > 0 && w > 0 && l > 0)); 282 | } 283 | 284 | /** 285 | * Validation of the schematic filename 286 | * first - test to see if it ends with '.schematic' 287 | * 288 | * @param schematicFilename the name of the file we're opening 289 | * @return whether the file is a valid schematic or not 290 | */ 291 | static boolean validateSchematicFile(String schematicFilename) { 292 | String ext = (schematicFilename.split("\\."))[1]; 293 | return ext.compareTo("schematic") == 0; 294 | } 295 | 296 | } 297 | -------------------------------------------------------------------------------- /src/TileEntity.java: -------------------------------------------------------------------------------- 1 | import org.jnbt.*; 2 | 3 | import java.util.ArrayList; 4 | import java.util.HashMap; 5 | import java.util.Map; 6 | 7 | public class TileEntity { 8 | // the tag in Structure format 9 | private CompoundTag tileEntityTag; 10 | 11 | public TileEntity(CompoundTag ct) { 12 | // get the map of everything 13 | Map tileEntityMap = ct.getValue(); 14 | 15 | // make list of tags 16 | // is generic type for later use 17 | ArrayList posList = new ArrayList<>(); 18 | posList.add(new IntTag("x", ((IntTag) tileEntityMap.get("x")).getValue())); 19 | posList.add(new IntTag("y", ((IntTag) tileEntityMap.get("y")).getValue())); 20 | posList.add(new IntTag("z", ((IntTag) tileEntityMap.get("z")).getValue())); 21 | 22 | // start combining everything together 23 | HashMap tileEntity = new HashMap<>(); 24 | tileEntity.put("blockPos", new ListTag("pos", IntTag.class, posList)); 25 | CompoundTag tileEntityNBTTag = new CompoundTag("nbt", tileEntityMap); 26 | tileEntity.put("nbt", tileEntityNBTTag); 27 | 28 | // make it a tag! 29 | tileEntityTag = new CompoundTag("TileEntity", tileEntity); 30 | } 31 | 32 | /** 33 | * getStructureFormat 34 | * 35 | * @return - a CompoundTag formatted correctly for Mojang's NBT Structure Specifications 36 | */ 37 | CompoundTag getStructureFormat() { 38 | return tileEntityTag; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /tests/Tests.java: -------------------------------------------------------------------------------- 1 | import org.junit.Assert; 2 | import org.junit.Test; 3 | 4 | import java.io.ByteArrayOutputStream; 5 | import java.io.PrintStream; 6 | 7 | public class Tests { 8 | @Test 9 | public void TestSizeValidation(){ 10 | Assert.assertFalse("validation should fail as height is greater than 32",Schematic2Structure.validateStructure(33,2,1)); 11 | Assert.assertFalse("validation should fail as width is greater than 32",Schematic2Structure.validateStructure(3,34,1)); 12 | Assert.assertFalse("validation should fail as length is greater than 32",Schematic2Structure.validateStructure(3,2,100)); 13 | 14 | Assert.assertTrue("validation should pass as all dimensions are less than 32",Schematic2Structure.validateStructure(15,8,9)); 15 | Assert.assertTrue("validation should pass as all dimensions are less than or equal to 32",Schematic2Structure.validateStructure(32,12,9)); 16 | Assert.assertTrue("validation should pass as all dimensions are less than 32",Schematic2Structure.validateStructure(31,24,12)); 17 | Assert.assertTrue("validation should pass as all dimensions are less than 32",Schematic2Structure.validateStructure(1,8,9)); 18 | 19 | Assert.assertFalse("validation should fail as there is a negative number", Schematic2Structure.validateStructure(-3,5,2)); 20 | Assert.assertFalse("validation should fail as there is a negative number", Schematic2Structure.validateStructure(3,-5,2)); 21 | Assert.assertFalse("validation should fail as there is a negative number", Schematic2Structure.validateStructure(3,5,-2)); 22 | 23 | Assert.assertTrue("validation should pass as all dimensions are equal to 32 (the limit)", Schematic2Structure.validateStructure(32,32,32)); 24 | Assert.assertFalse("validation should fail as all dimensions are greater than 32", Schematic2Structure.validateStructure(33,33,33)); 25 | 26 | } 27 | 28 | @Test 29 | public void TestFileNameValidation(){ 30 | Assert.assertTrue("tests not yet implemented", false); 31 | } 32 | @Test 33 | public void TestTooLargeFile(){ 34 | ByteArrayOutputStream outContent = new ByteArrayOutputStream(); 35 | System.setOut(new PrintStream(outContent)); 36 | 37 | Schematic2Structure.main(new String[]{"schematics/luxury-house.schematic"}); 38 | // includes CRLF 39 | String expected = "Converting Schematic file schematics/luxury-house.schematic\r\nStructure is too large!\r\n"; 40 | 41 | Assert.assertEquals("Program should notify user than structure is too large", outContent.toString(),expected); 42 | } 43 | @Test 44 | public void TestInvalidFileName(){ 45 | ByteArrayOutputStream outContent = new ByteArrayOutputStream(); 46 | System.setOut(new PrintStream(outContent)); 47 | 48 | Schematic2Structure.main(new String[]{"schematics/invalid-file.png"}); 49 | System.out.println(outContent.toString()); 50 | 51 | 52 | } 53 | 54 | } 55 | --------------------------------------------------------------------------------