├── .gitignore ├── LICENSE ├── README.md ├── README_images ├── 1_1.png ├── 1_2.png ├── 2_1.png ├── 2_2.png ├── 3_1.png ├── 3_2.png ├── blacklist.png ├── demo.gif ├── installation.png └── main.png ├── blacklists ├── All Blocks.txt └── Base.txt ├── colors.json ├── img2schem.py └── scripts ├── install.py └── main.py /.gitignore: -------------------------------------------------------------------------------- 1 | **/__pycache__ 2 | tests.ipynb -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 fropych 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 | # Mine Diffusion extension for Stable-Diffusion-WebUI 2 | 3 | A extension for [AUTOMATIC1111/stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui), which allows you to easily import images into Minecraft using [Litematica](https://www.curseforge.com/minecraft/mc-mods/litematica) mod 4 | 5 |

6 | 7 |

8 | 9 |

10 | 11 |

12 | 13 | ## Installation 14 | 15 | The extension can be installed directly from within the **Extensions** tab within the Webui 16 | 17 | 18 | 19 | You also need a Litematic mod to import the scheme into minecraft 20 | 21 | ## Usage 22 | 23 | ### __Main Tab__ 24 | *__Vertical__* - changes orientation from horizontal to vertical 25 | *__Flip__* - mirrors the image 26 | *__Rotation__* - the angle at which to rotate the image 27 | *__Schematic Size__* - adjusts the size in the game (large values take processing time) 28 | 29 | ### __Blocks Blacklist__ 30 | 31 | The blocks selected here will not participate in the transformation of the image into minecraft blocks 32 | 33 | 34 | 35 | *__Action__* - what to do with the current blacklist when loading a preset 36 | *__Load__* - loads the selected preset 37 | *__Apply__* - applies the selected preset 38 | *__Update Presets__* - updates the list of presets (for example, if you have saved a new preset, click this button) 39 | -------------------------------------------------------------------------------- /README_images/1_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/1_1.png -------------------------------------------------------------------------------- /README_images/1_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/1_2.png -------------------------------------------------------------------------------- /README_images/2_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/2_1.png -------------------------------------------------------------------------------- /README_images/2_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/2_2.png -------------------------------------------------------------------------------- /README_images/3_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/3_1.png -------------------------------------------------------------------------------- /README_images/3_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/3_2.png -------------------------------------------------------------------------------- /README_images/blacklist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/blacklist.png -------------------------------------------------------------------------------- /README_images/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/demo.gif -------------------------------------------------------------------------------- /README_images/installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/installation.png -------------------------------------------------------------------------------- /README_images/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fropych/mine-diffusion/039062f0fa3dd148a16d897d60633806baf3cc33/README_images/main.png -------------------------------------------------------------------------------- /blacklists/All Blocks.txt: -------------------------------------------------------------------------------- 1 | Grass Block 2 | Slime Block 3 | Sand 4 | Sandstone 5 | Sandstone Slab 6 | Birch Log (vertical) 7 | Birch Planks 8 | Birch Slab 9 | Glowstone 10 | End Stone 11 | End Stone Bricks 12 | End Stone Brick Slab 13 | Bone Block 14 | Cobweb 15 | Mushroom Stem 16 | TNT 17 | Block of Redstone 18 | Ice 19 | Packed Ice 20 | Blue Ice 21 | Block of Iron 22 | Iron Trapdoor 23 | Weighted Pressure Plate (Heavy) 24 | Brewing Stand 25 | Leaves (Oak) 26 | Leaves (Spruce) 27 | Leaves (Birch) 28 | Leaves (Jungle) 29 | Leaves (Acacia) 30 | Leaves (Dark Oak) 31 | Leaves (Azalea) 32 | Clay 33 | Jungle Log (vertical) 34 | Jungle Planks 35 | Jungle Slab 36 | Dirt 37 | Coarse Dirt 38 | Rooted Dirt 39 | Jukebox 40 | Granite 41 | Granite Slab 42 | Cobblestone 43 | Cobblestone Slab 44 | Mossy Cobblestone 45 | Mossy Cobblestone Slab 46 | Stone 47 | Stone Slab 48 | Smooth Stone Slab 49 | Stone Bricks 50 | Stone Brick Slab 51 | Andesite 52 | Andesite Slab 53 | Bedrock 54 | Acacia Log (horizontal) 55 | Gravel 56 | Oak Log (vertical) 57 | Oak Planks 58 | Oak Slab 59 | Crafting Table 60 | Birch Log (horizontal) 61 | Diorite 62 | Diorite Slab 63 | Quartz Block 64 | Quartz Slab 65 | Sea Lantern 66 | White Wool 67 | White Carpet 68 | White Stained Glass 69 | White Concrete 70 | White Concrete Powder 71 | White Glazed Terracotta 72 | Snow Block 73 | Snow Layer 74 | Orange Wool 75 | Orange Carpet 76 | Orange Stained Glass 77 | Orange Concrete 78 | Orange Concrete Powder 79 | Orange Glazed Terracotta 80 | Pumpkin 81 | Acacia Log (vertical) 82 | Acacia Planks 83 | Acacia Slab 84 | Red Sand 85 | Red Sandstone 86 | Red Sandstone Slab 87 | Terracotta 88 | Honey Block 89 | Honeycomb Block 90 | Block Of Raw Copper 91 | Waxed Block Of Copper 92 | Waxed Cut Copper Slab 93 | Magenta Wool 94 | Magenta Carpet 95 | Magenta Stained Glass 96 | Magenta Concrete 97 | Magenta Concrete Powder 98 | Magenta Glazed Terracotta 99 | Purpur Block 100 | Purpur Slab 101 | Light Blue Wool 102 | Light Blue Carpet 103 | Light Blue Stained Glass 104 | Light Blue Concrete 105 | Light Blue Concrete Powder 106 | Light Blue Glazed Terracotta 107 | Yellow Wool 108 | Yellow Carpet 109 | Yellow Stained Glass 110 | Yellow Concrete 111 | Yellow Concrete Powder 112 | Yellow Glazed Terracotta 113 | Hay Bale 114 | Sponge (any) 115 | Lime Wool 116 | Lime Carpet 117 | Lime Stained Glass 118 | Lime Concrete 119 | Lime Concrete Powder 120 | Lime Glazed Terracotta 121 | Melon 122 | Pink Wool 123 | Pink Carpet 124 | Pink Stained Glass 125 | Pink Concrete 126 | Pink Concrete Powder 127 | Pink Glazed Terracotta 128 | Gray Wool 129 | Gray Carpet 130 | Gray Stained Glass 131 | Gray Concrete 132 | Gray Concrete Powder 133 | Gray Glazed Terracotta 134 | Dead Tube Coral Block 135 | Dead Brain Coral Block 136 | Dead Bubble Coral Block 137 | Dead Fire Coral Block 138 | Dead Horn Coral Block 139 | Tinted Glass 140 | Light Gray Wool 141 | Light Gray Carpet 142 | Light Gray Stained Glass 143 | Light Gray Concrete 144 | Light Gray Concrete Powder 145 | Light Gray Glazed Terracotta 146 | Cyan Wool 147 | Cyan Carpet 148 | Cyan Stained Glass 149 | Cyan Concrete 150 | Cyan Concrete Powder 151 | Cyan Glazed Terracotta 152 | Prismarine 153 | Prismarine Slab 154 | Purple Wool 155 | Purple Carpet 156 | Purple Stained Glass 157 | Purple Concrete 158 | Purple Concrete Powder 159 | Purple Glazed Terracotta 160 | Mycelium 161 | Amethyst Block 162 | Blue Wool 163 | Blue Carpet 164 | Blue Stained Glass 165 | Blue Concrete 166 | Blue Concrete Powder 167 | Blue Glazed Terracotta 168 | Brown Wool 169 | Brown Carpet 170 | Brown Stained Glass 171 | Brown Concrete 172 | Brown Concrete Powder 173 | Brown Glazed Terracotta 174 | Dark Oak Log (any direction) 175 | Dark Oak Planks 176 | Dark Oak Slab 177 | Spruce Log (horizontal) 178 | Soul Sand 179 | Soul Soil 180 | Green Wool 181 | Green Carpet 182 | Green Stained Glass 183 | Green Concrete 184 | Green Concrete Powder 185 | Green Glazed Terracotta 186 | Dried Kelp Block 187 | Red Wool 188 | Red Carpet 189 | Red Stained Glass 190 | Red Concrete 191 | Red Concrete Powder 192 | Red Glazed Terracotta 193 | Bricks 194 | Bricks Slab 195 | Nether Wart Block 196 | Shroomlight 197 | Black Wool 198 | Black Carpet 199 | Black Stained Glass 200 | Black Concrete 201 | Black Concrete Powder 202 | Black Glazed Terracotta 203 | Block of Coal 204 | Obsidian 205 | Crying Obsidian 206 | Blackstone 207 | Blackstone Slab 208 | Basalt 209 | Block Of Netherite 210 | Block of Gold 211 | Weighted Pressure Plate (Light) 212 | Block Of Raw Gold 213 | Block of Diamond 214 | Prismarine Bricks 215 | Prismarine Brick Slab 216 | Dark Prismarine 217 | Dark Prismarine Slab 218 | Beacon 219 | Lapis Lazuli Block 220 | Block of Emerald 221 | Spruce Log (vertical) 222 | Spruce Planks 223 | Spruce Slab 224 | Oak Log (horizontal) 225 | Jungle Log (horizontal) 226 | Podzol 227 | Netherrack 228 | Nether Brick 229 | Nether Brick Slab 230 | Magma Block 231 | Red Nether Bricks 232 | Red Nether Brick Slab 233 | White Terracotta 234 | Calcite 235 | Orange Terracotta 236 | Magenta Terracotta 237 | Light Blue Terracotta 238 | Yellow Terracotta 239 | Lime Terracotta 240 | Pink Terracotta 241 | Gray Terracotta 242 | Tuff 243 | Light Gray Terracotta 244 | Waxed Exposed Copper 245 | Waxed Exposed Cut Copper Slab 246 | Cyan Terracotta 247 | Purple Terracotta 248 | Blue Terracotta 249 | Brown Terracotta 250 | Dripstone Block 251 | Green Terracotta 252 | Red Terracotta 253 | Black Terracotta 254 | Crimson Nylium 255 | Crimson Stem 256 | Stripped Crimson Stem 257 | Crimson Planks 258 | Crimson Slab 259 | Crimson Hyphae 260 | Stripped Crimson Hyphae 261 | Warped Nylium 262 | Waxed Oxidized Copper 263 | Waxed Oxidized Cut Copper Slab 264 | Warped Stem 265 | Stripped Warped Stem 266 | Warped Planks 267 | Warped Slab 268 | Waxed Weathered Copper 269 | Waxed Weathered Cut Copper Slab 270 | Warped Hyphae 271 | Stripped Warped Hyphae 272 | Warped Wart Block 273 | Deepslate 274 | Cobbled Deepslate 275 | Cobbled Deepslate Slab 276 | Block Of Raw Iron 277 | Glow Lichen 278 | -------------------------------------------------------------------------------- /blacklists/Base.txt: -------------------------------------------------------------------------------- 1 | Water (Unsupported!) 2 | Bedrock -------------------------------------------------------------------------------- /colors.json: -------------------------------------------------------------------------------- 1 | {"0": {"tonesRGB": {"dark": [89, 125, 39], "normal": [109, 153, 48], "light": [127, 178, 56], "unobtainable": [67, 94, 29]}, "blocks": {"0": {"displayName": "Grass Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "grass_block", "NBTArgs": {}}, "1": {"displayName": "Slime Block", "supportBlockMandatory": true, "flammable": false, "presetIndex": 1, "NBTName": "slime_block", "NBTArgs": {}}}, "mapdatId": 1, "colourName": "Grass"}, "1": {"tonesRGB": {"dark": [174, 164, 115], "normal": [213, 201, 140], "light": [247, 233, 163], "unobtainable": [130, 123, 86]}, "blocks": {"0": {"displayName": "Sand", "supportBlockMandatory": true, "flammable": false, "presetIndex": 0, "NBTName": "sand", "NBTArgs": {}}, "1": {"displayName": "Sandstone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "sandstone", "NBTArgs": {}}, "2": {"displayName": "Sandstone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 7, "NBTName": "sandstone_slab", "NBTArgs": {}}, "3": {"displayName": "Birch Log (vertical)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 2, "NBTName": "birch_log", "NBTArgs": {"axis": "y"}}, "4": {"displayName": "Birch Planks", "supportBlockMandatory": false, "flammable": true, "presetIndex": 3, "NBTName": "birch_planks", "NBTArgs": {}}, "5": {"displayName": "Birch Slab", "supportBlockMandatory": true, "flammable": true, "presetIndex": 4, "NBTName": "birch_slab", "NBTArgs": {}}, "6": {"displayName": "Glowstone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "glowstone", "NBTArgs": {}}, "7": {"displayName": "End Stone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "end_stone", "NBTArgs": {}}, "8": {"displayName": "End Stone Bricks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 8, "NBTName": "end_stone_bricks", "NBTArgs": {}}, "9": {"displayName": "End Stone Brick Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 9, "NBTName": "end_stone_brick_slab", "NBTArgs": {}}, "10": {"displayName": "Bone Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 10, "NBTName": "bone_block", "NBTArgs": {}}}, "mapdatId": 2, "colourName": "Sand"}, "2": {"tonesRGB": {"dark": [140, 140, 140], "normal": [171, 171, 171], "light": [199, 199, 199], "unobtainable": [105, 105, 105]}, "blocks": {"0": {"displayName": "Cobweb", "supportBlockMandatory": true, "flammable": false, "presetIndex": 0, "NBTName": "cobweb", "NBTArgs": {}}, "1": {"displayName": "Mushroom Stem", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "mushroom_stem", "NBTArgs": {}}}, "mapdatId": 3, "colourName": "Cobweb"}, "3": {"tonesRGB": {"dark": [180, 0, 0], "normal": [220, 0, 0], "light": [255, 0, 0], "unobtainable": [135, 0, 0]}, "blocks": {"0": {"displayName": "TNT", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "tnt", "NBTArgs": {}}, "1": {"displayName": "Block of Redstone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "redstone_block", "NBTArgs": {}}}, "mapdatId": 4, "colourName": "TNT"}, "4": {"tonesRGB": {"dark": [112, 112, 180], "normal": [138, 138, 220], "light": [160, 160, 255], "unobtainable": [84, 84, 135]}, "blocks": {"0": {"displayName": "Ice", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "ice", "NBTArgs": {}}, "1": {"displayName": "Packed Ice", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "packed_ice", "NBTArgs": {}}, "2": {"displayName": "Blue Ice", "supportBlockMandatory": false, "flammable": false, "presetIndex": 2, "NBTName": "blue_ice", "NBTArgs": {}}}, "mapdatId": 5, "colourName": "Ice"}, "5": {"tonesRGB": {"dark": [117, 117, 117], "normal": [144, 144, 144], "light": [167, 167, 167], "unobtainable": [88, 88, 88]}, "blocks": {"0": {"displayName": "Block of Iron", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "iron_block", "NBTArgs": {}}, "1": {"displayName": "Iron Trapdoor", "supportBlockMandatory": true, "flammable": false, "presetIndex": 1, "NBTName": "iron_trapdoor", "NBTArgs": {"half": "bottom"}}, "3": {"displayName": "Weighted Pressure Plate (Heavy)", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "heavy_weighted_pressure_plate", "NBTArgs": {}}, "4": {"displayName": "Brewing Stand", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "brewing_stand", "NBTArgs": {}}}, "mapdatId": 6, "colourName": "Iron"}, "6": {"tonesRGB": {"dark": [0, 87, 0], "normal": [0, 106, 0], "light": [0, 124, 0], "unobtainable": [0, 65, 0]}, "blocks": {"0": {"displayName": "Leaves (Oak)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "oak_leaves", "NBTArgs": {"persistent": "true"}}, "1": {"displayName": "Leaves (Spruce)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 1, "NBTName": "spruce_leaves", "NBTArgs": {"persistent": "true"}}, "2": {"displayName": "Leaves (Birch)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 2, "NBTName": "birch_leaves", "NBTArgs": {"persistent": "true"}}, "3": {"displayName": "Leaves (Jungle)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 3, "NBTName": "jungle_leaves", "NBTArgs": {"persistent": "true"}}, "4": {"displayName": "Leaves (Acacia)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 4, "NBTName": "acacia_leaves", "NBTArgs": {"persistent": "true"}}, "5": {"displayName": "Leaves (Dark Oak)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 5, "NBTName": "dark_oak_leaves", "NBTArgs": {"persistent": "true"}}, "6": {"displayName": "Leaves (Azalea)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "azalea_leaves", "NBTArgs": {"persistent": "true"}}}, "mapdatId": 7, "colourName": "Leaves"}, "7": {"tonesRGB": {"dark": [115, 118, 129], "normal": [141, 144, 158], "light": [164, 168, 184], "unobtainable": [86, 88, 97]}, "blocks": {"0": {"displayName": "Clay", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "clay", "NBTArgs": {}}}, "mapdatId": 9, "colourName": "Clay"}, "8": {"tonesRGB": {"dark": [106, 76, 54], "normal": [130, 94, 66], "light": [151, 109, 77], "unobtainable": [79, 57, 40]}, "blocks": {"0": {"displayName": "Jungle Log (vertical)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "jungle_log", "NBTArgs": {"axis": "y"}}, "1": {"displayName": "Jungle Planks", "supportBlockMandatory": false, "flammable": true, "presetIndex": 1, "NBTName": "jungle_planks", "NBTArgs": {}}, "2": {"displayName": "Jungle Slab", "supportBlockMandatory": true, "flammable": true, "presetIndex": 2, "NBTName": "jungle_slab", "NBTArgs": {}}, "3": {"displayName": "Dirt", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "dirt", "NBTArgs": {}}, "4": {"displayName": "Coarse Dirt", "supportBlockMandatory": false, "flammable": false, "presetIndex": 4, "NBTName": "coarse_dirt", "NBTArgs": {}}, "5": {"displayName": "Rooted Dirt", "supportBlockMandatory": false, "flammable": false, "presetIndex": 8, "NBTName": "rooted_dirt", "NBTArgs": {}}, "6": {"displayName": "Jukebox", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "jukebox", "NBTArgs": {}}, "7": {"displayName": "Granite", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "granite", "NBTArgs": {}}, "8": {"displayName": "Granite Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 7, "NBTName": "granite_slab", "NBTArgs": {}}}, "mapdatId": 10, "colourName": "Dirt"}, "9": {"tonesRGB": {"dark": [79, 79, 79], "normal": [96, 96, 96], "light": [112, 112, 112], "unobtainable": [59, 59, 59]}, "blocks": {"0": {"displayName": "Cobblestone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "cobblestone", "NBTArgs": {}}, "1": {"displayName": "Cobblestone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 3, "NBTName": "cobblestone_slab", "NBTArgs": {}}, "2": {"displayName": "Mossy Cobblestone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 8, "NBTName": "mossy_cobblestone", "NBTArgs": {}}, "3": {"displayName": "Mossy Cobblestone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 9, "NBTName": "mossy_cobblestone_slab", "NBTArgs": {}}, "4": {"displayName": "Stone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "stone", "NBTArgs": {}}, "5": {"displayName": "Stone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "stone_slab", "NBTArgs": {}}, "6": {"displayName": "Smooth Stone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 10, "NBTName": "smooth_stone_slab", "NBTArgs": {}}, "7": {"displayName": "Stone Bricks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 11, "NBTName": "stone_bricks", "NBTArgs": {}}, "8": {"displayName": "Stone Brick Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 12, "NBTName": "stone_brick_slab", "NBTArgs": {}}, "9": {"displayName": "Andesite", "supportBlockMandatory": false, "flammable": false, "presetIndex": 4, "NBTName": "andesite", "NBTArgs": {}}, "10": {"displayName": "Andesite Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 13, "NBTName": "andesite_slab", "NBTArgs": {}}, "11": {"displayName": "Bedrock", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "bedrock", "NBTArgs": {}}, "12": {"displayName": "Acacia Log (horizontal)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "acacia_log", "NBTArgs": {"axis": "x"}}, "13": {"displayName": "Gravel", "supportBlockMandatory": true, "flammable": false, "presetIndex": 7, "NBTName": "gravel", "NBTArgs": {}}}, "mapdatId": 11, "colourName": "Stone"}, "10": {"tonesRGB": {"dark": [45, 45, 180], "normal": [55, 55, 220], "light": [64, 64, 255], "unobtainable": [33, 33, 135]}, "blocks": {"0": {"displayName": "Water (Unsupported!)", "supportBlockMandatory": true, "flammable": false, "presetIndex": 0, "NBTName": "water", "NBTArgs": {}}}, "mapdatId": 12, "colourName": "Water"}, "11": {"tonesRGB": {"dark": [100, 84, 50], "normal": [123, 102, 62], "light": [143, 119, 72], "unobtainable": [75, 63, 38]}, "blocks": {"0": {"displayName": "Oak Log (vertical)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "oak_log", "NBTArgs": {"axis": "y"}}, "1": {"displayName": "Oak Planks", "supportBlockMandatory": false, "flammable": true, "presetIndex": 1, "NBTName": "oak_planks", "NBTArgs": {}}, "2": {"displayName": "Oak Slab", "supportBlockMandatory": true, "flammable": true, "presetIndex": 2, "NBTName": "oak_slab", "NBTArgs": {}}, "3": {"displayName": "Crafting Table", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "crafting_table", "NBTArgs": {}}}, "mapdatId": 13, "colourName": "Oak"}, "12": {"tonesRGB": {"dark": [180, 177, 172], "normal": [220, 217, 211], "light": [255, 252, 245], "unobtainable": [135, 133, 129]}, "blocks": {"0": {"displayName": "Birch Log (horizontal)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "birch_log", "NBTArgs": {"axis": "x"}}, "1": {"displayName": "Diorite", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "diorite", "NBTArgs": {}}, "2": {"displayName": "Diorite Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 5, "NBTName": "diorite_slab", "NBTArgs": {}}, "3": {"displayName": "Quartz Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 2, "NBTName": "quartz_block", "NBTArgs": {}}, "4": {"displayName": "Quartz Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 3, "NBTName": "quartz_slab", "NBTArgs": {}}, "5": {"displayName": "Sea Lantern", "supportBlockMandatory": false, "flammable": false, "presetIndex": 4, "NBTName": "sea_lantern", "NBTArgs": {}}}, "mapdatId": 14, "colourName": "Birch"}, "13": {"tonesRGB": {"dark": [180, 180, 180], "normal": [220, 220, 220], "light": [255, 255, 255], "unobtainable": [135, 135, 135]}, "blocks": {"0": {"displayName": "White Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "white_wool", "NBTArgs": {}}, "1": {"displayName": "White Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "white_carpet", "NBTArgs": {}}, "2": {"displayName": "White Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "white_stained_glass", "NBTArgs": {}}, "3": {"displayName": "White Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "white_concrete", "NBTArgs": {}}, "4": {"displayName": "White Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "white_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "White Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "white_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Snow Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "snow_block", "NBTArgs": {}}, "7": {"displayName": "Snow Layer", "supportBlockMandatory": true, "flammable": false, "presetIndex": 7, "NBTName": "snow", "NBTArgs": {}}}, "mapdatId": 8, "colourName": "White Wool"}, "14": {"tonesRGB": {"dark": [152, 89, 36], "normal": [186, 109, 44], "light": [216, 127, 51], "unobtainable": [114, 67, 27]}, "blocks": {"0": {"displayName": "Orange Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "orange_wool", "NBTArgs": {}}, "1": {"displayName": "Orange Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "orange_carpet", "NBTArgs": {}}, "2": {"displayName": "Orange Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "orange_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Orange Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "orange_concrete", "NBTArgs": {}}, "4": {"displayName": "Orange Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "orange_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Orange Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "orange_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Pumpkin", "supportBlockMandatory": true, "flammable": false, "presetIndex": 15, "NBTName": "pumpkin", "NBTArgs": {}}, "7": {"displayName": "Acacia Log (vertical)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "acacia_log", "NBTArgs": {"axis": "y"}}, "8": {"displayName": "Acacia Planks", "supportBlockMandatory": false, "flammable": true, "presetIndex": 7, "NBTName": "acacia_planks", "NBTArgs": {}}, "9": {"displayName": "Acacia Slab", "supportBlockMandatory": true, "flammable": true, "presetIndex": 8, "NBTName": "acacia_slab", "NBTArgs": {}}, "10": {"displayName": "Red Sand", "supportBlockMandatory": true, "flammable": false, "presetIndex": 9, "NBTName": "red_sand", "NBTArgs": {}}, "11": {"displayName": "Red Sandstone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 10, "NBTName": "red_sandstone", "NBTArgs": {}}, "12": {"displayName": "Red Sandstone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 12, "NBTName": "red_sandstone_slab", "NBTArgs": {}}, "13": {"displayName": "Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 11, "NBTName": "terracotta", "NBTArgs": {}}, "14": {"displayName": "Honey Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 13, "NBTName": "honey_block", "NBTArgs": {}}, "15": {"displayName": "Honeycomb Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 14, "NBTName": "honeycomb_block", "NBTArgs": {}}, "16": {"displayName": "Block Of Raw Copper", "supportBlockMandatory": false, "flammable": false, "presetIndex": 16, "NBTName": "raw_copper_block", "NBTArgs": {}}, "17": {"displayName": "Waxed Block Of Copper", "supportBlockMandatory": false, "flammable": false, "presetIndex": 17, "NBTName": "waxed_copper_block", "NBTArgs": {}}, "18": {"displayName": "Waxed Cut Copper Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 18, "NBTName": "waxed_cut_copper_slab", "NBTArgs": {}}}, "mapdatId": 15, "colourName": "Orange Wool"}, "15": {"tonesRGB": {"dark": [125, 53, 152], "normal": [153, 65, 186], "light": [178, 76, 216], "unobtainable": [94, 40, 114]}, "blocks": {"0": {"displayName": "Magenta Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "magenta_wool", "NBTArgs": {}}, "1": {"displayName": "Magenta Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "magenta_carpet", "NBTArgs": {}}, "2": {"displayName": "Magenta Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "magenta_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Magenta Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "magenta_concrete", "NBTArgs": {}}, "4": {"displayName": "Magenta Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "magenta_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Magenta Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "magenta_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Purpur Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "purpur_block", "NBTArgs": {}}, "7": {"displayName": "Purpur Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 7, "NBTName": "purpur_slab", "NBTArgs": {}}}, "mapdatId": 16, "colourName": "Magenta Wool"}, "16": {"tonesRGB": {"dark": [72, 108, 152], "normal": [88, 132, 186], "light": [102, 153, 216], "unobtainable": [54, 81, 114]}, "blocks": {"0": {"displayName": "Light Blue Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "light_blue_wool", "NBTArgs": {}}, "1": {"displayName": "Light Blue Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "light_blue_carpet", "NBTArgs": {}}, "2": {"displayName": "Light Blue Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "light_blue_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Light Blue Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "light_blue_concrete", "NBTArgs": {}}, "4": {"displayName": "Light Blue Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "light_blue_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Light Blue Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "light_blue_glazed_terracotta", "NBTArgs": {}}}, "mapdatId": 17, "colourName": "Light Blue Wool"}, "17": {"tonesRGB": {"dark": [161, 161, 36], "normal": [197, 197, 44], "light": [229, 229, 51], "unobtainable": [121, 121, 27]}, "blocks": {"0": {"displayName": "Yellow Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "yellow_wool", "NBTArgs": {}}, "1": {"displayName": "Yellow Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "yellow_carpet", "NBTArgs": {}}, "2": {"displayName": "Yellow Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "yellow_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Yellow Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "yellow_concrete", "NBTArgs": {}}, "4": {"displayName": "Yellow Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "yellow_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Yellow Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "yellow_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Hay Bale", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "hay_block", "NBTArgs": {}}, "7": {"displayName": "Sponge (any)", "supportBlockMandatory": false, "flammable": false, "presetIndex": 7, "NBTName": "sponge", "NBTArgs": {}}}, "mapdatId": 18, "colourName": "Yellow Wool"}, "18": {"tonesRGB": {"dark": [89, 144, 17], "normal": [109, 176, 21], "light": [127, 204, 25], "unobtainable": [67, 108, 13]}, "blocks": {"0": {"displayName": "Lime Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "lime_wool", "NBTArgs": {}}, "1": {"displayName": "Lime Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "lime_carpet", "NBTArgs": {}}, "2": {"displayName": "Lime Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "lime_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Lime Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "lime_concrete", "NBTArgs": {}}, "4": {"displayName": "Lime Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "lime_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Lime Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "lime_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Melon", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "melon", "NBTArgs": {}}}, "mapdatId": 19, "colourName": "Lime Wool"}, "19": {"tonesRGB": {"dark": [170, 89, 116], "normal": [208, 109, 142], "light": [242, 127, 165], "unobtainable": [128, 67, 87]}, "blocks": {"0": {"displayName": "Pink Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "pink_wool", "NBTArgs": {}}, "1": {"displayName": "Pink Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "pink_carpet", "NBTArgs": {}}, "2": {"displayName": "Pink Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "pink_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Pink Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "pink_concrete", "NBTArgs": {}}, "4": {"displayName": "Pink Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "pink_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Pink Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "pink_glazed_terracotta", "NBTArgs": {}}}, "mapdatId": 20, "colourName": "Pink Wool"}, "20": {"tonesRGB": {"dark": [53, 53, 53], "normal": [65, 65, 65], "light": [76, 76, 76], "unobtainable": [40, 40, 40]}, "blocks": {"0": {"displayName": "Gray Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "gray_wool", "NBTArgs": {}}, "1": {"displayName": "Gray Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "gray_carpet", "NBTArgs": {}}, "2": {"displayName": "Gray Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "gray_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Gray Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "gray_concrete", "NBTArgs": {}}, "4": {"displayName": "Gray Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "gray_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Gray Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "gray_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Dead Tube Coral Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "dead_tube_coral_block", "NBTArgs": {}}, "7": {"displayName": "Dead Brain Coral Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 7, "NBTName": "dead_brain_coral_block", "NBTArgs": {}}, "8": {"displayName": "Dead Bubble Coral Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 8, "NBTName": "dead_bubble_coral_block", "NBTArgs": {}}, "9": {"displayName": "Dead Fire Coral Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 9, "NBTName": "dead_fire_coral_block", "NBTArgs": {}}, "10": {"displayName": "Dead Horn Coral Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 10, "NBTName": "dead_horn_coral_block", "NBTArgs": {}}, "11": {"displayName": "Tinted Glass", "supportBlockMandatory": false, "flammable": false, "presetIndex": 11, "NBTName": "tinted_glass", "NBTArgs": {}}}, "mapdatId": 21, "colourName": "Gray Wool"}, "21": {"tonesRGB": {"dark": [108, 108, 108], "normal": [132, 132, 132], "light": [153, 153, 153], "unobtainable": [81, 81, 81]}, "blocks": {"0": {"displayName": "Light Gray Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "light_gray_wool", "NBTArgs": {}}, "1": {"displayName": "Light Gray Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "light_gray_carpet", "NBTArgs": {}}, "2": {"displayName": "Light Gray Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "light_gray_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Light Gray Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "light_gray_concrete", "NBTArgs": {}}, "4": {"displayName": "Light Gray Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "light_gray_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Light Gray Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "light_gray_glazed_terracotta", "NBTArgs": {}}}, "mapdatId": 22, "colourName": "Light Gray Wool"}, "22": {"tonesRGB": {"dark": [53, 89, 108], "normal": [65, 109, 132], "light": [76, 127, 153], "unobtainable": [40, 67, 81]}, "blocks": {"0": {"displayName": "Cyan Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "cyan_wool", "NBTArgs": {}}, "1": {"displayName": "Cyan Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "cyan_carpet", "NBTArgs": {}}, "2": {"displayName": "Cyan Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "cyan_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Cyan Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "cyan_concrete", "NBTArgs": {}}, "4": {"displayName": "Cyan Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "cyan_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Cyan Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "cyan_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Prismarine", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "prismarine", "NBTArgs": {}}, "7": {"displayName": "Prismarine Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 7, "NBTName": "prismarine_slab", "NBTArgs": {}}}, "mapdatId": 23, "colourName": "Cyan Wool"}, "23": {"tonesRGB": {"dark": [89, 44, 125], "normal": [109, 54, 153], "light": [127, 63, 178], "unobtainable": [67, 33, 94]}, "blocks": {"0": {"displayName": "Purple Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "purple_wool", "NBTArgs": {}}, "1": {"displayName": "Purple Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "purple_carpet", "NBTArgs": {}}, "2": {"displayName": "Purple Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "purple_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Purple Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "purple_concrete", "NBTArgs": {}}, "4": {"displayName": "Purple Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "purple_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Purple Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "purple_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Mycelium", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "mycelium", "NBTArgs": {}}, "7": {"displayName": "Amethyst Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 7, "NBTName": "amethyst_block", "NBTArgs": {}}}, "mapdatId": 24, "colourName": "Purple Wool"}, "24": {"tonesRGB": {"dark": [36, 53, 125], "normal": [44, 65, 153], "light": [51, 76, 178], "unobtainable": [27, 40, 94]}, "blocks": {"0": {"displayName": "Blue Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "blue_wool", "NBTArgs": {}}, "1": {"displayName": "Blue Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "blue_carpet", "NBTArgs": {}}, "2": {"displayName": "Blue Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "blue_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Blue Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "blue_concrete", "NBTArgs": {}}, "4": {"displayName": "Blue Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "blue_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Blue Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "blue_glazed_terracotta", "NBTArgs": {}}}, "mapdatId": 25, "colourName": "Blue Wool"}, "25": {"tonesRGB": {"dark": [72, 53, 36], "normal": [88, 65, 44], "light": [102, 76, 51], "unobtainable": [54, 40, 27]}, "blocks": {"0": {"displayName": "Brown Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "brown_wool", "NBTArgs": {}}, "1": {"displayName": "Brown Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "brown_carpet", "NBTArgs": {}}, "2": {"displayName": "Brown Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "brown_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Brown Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "brown_concrete", "NBTArgs": {}}, "4": {"displayName": "Brown Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "brown_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Brown Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "brown_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Dark Oak Log (any direction)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "dark_oak_log", "NBTArgs": {"axis": "y"}}, "7": {"displayName": "Dark Oak Planks", "supportBlockMandatory": false, "flammable": true, "presetIndex": 7, "NBTName": "dark_oak_planks", "NBTArgs": {}}, "8": {"displayName": "Dark Oak Slab", "supportBlockMandatory": true, "flammable": true, "presetIndex": 8, "NBTName": "dark_oak_slab", "NBTArgs": {}}, "9": {"displayName": "Spruce Log (horizontal)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 9, "NBTName": "spruce_log", "NBTArgs": {"axis": "x"}}, "10": {"displayName": "Soul Sand", "supportBlockMandatory": false, "flammable": false, "presetIndex": 10, "NBTName": "soul_sand", "NBTArgs": {}}, "11": {"displayName": "Soul Soil", "supportBlockMandatory": false, "flammable": false, "presetIndex": 11, "NBTName": "soul_soil", "NBTArgs": {}}}, "mapdatId": 26, "colourName": "Brown Wool"}, "26": {"tonesRGB": {"dark": [72, 89, 36], "normal": [88, 109, 44], "light": [102, 127, 51], "unobtainable": [54, 67, 27]}, "blocks": {"0": {"displayName": "Green Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "green_wool", "NBTArgs": {}}, "1": {"displayName": "Green Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "green_carpet", "NBTArgs": {}}, "2": {"displayName": "Green Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "green_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Green Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "green_concrete", "NBTArgs": {}}, "4": {"displayName": "Green Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "green_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Green Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "green_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Dried Kelp Block", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "dried_kelp_block", "NBTArgs": {}}}, "mapdatId": 27, "colourName": "Green Wool"}, "27": {"tonesRGB": {"dark": [108, 36, 36], "normal": [132, 44, 44], "light": [153, 51, 51], "unobtainable": [81, 27, 27]}, "blocks": {"0": {"displayName": "Red Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "red_wool", "NBTArgs": {}}, "1": {"displayName": "Red Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "red_carpet", "NBTArgs": {}}, "2": {"displayName": "Red Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "red_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Red Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "red_concrete", "NBTArgs": {}}, "4": {"displayName": "Red Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "red_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Red Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "red_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Bricks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 6, "NBTName": "bricks", "NBTArgs": {}}, "7": {"displayName": "Bricks Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 8, "NBTName": "brick_slab", "NBTArgs": {}}, "8": {"displayName": "Nether Wart Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 7, "NBTName": "nether_wart_block", "NBTArgs": {}}, "9": {"displayName": "Shroomlight", "supportBlockMandatory": false, "flammable": false, "presetIndex": 9, "NBTName": "shroomlight", "NBTArgs": {}}}, "mapdatId": 28, "colourName": "Red Wool"}, "28": {"tonesRGB": {"dark": [17, 17, 17], "normal": [21, 21, 21], "light": [25, 25, 25], "unobtainable": [13, 13, 13]}, "blocks": {"0": {"displayName": "Black Wool", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "black_wool", "NBTArgs": {}}, "1": {"displayName": "Black Carpet", "supportBlockMandatory": true, "flammable": true, "presetIndex": 1, "NBTName": "black_carpet", "NBTArgs": {}}, "2": {"displayName": "Black Stained Glass", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "black_stained_glass", "NBTArgs": {}}, "3": {"displayName": "Black Concrete", "supportBlockMandatory": false, "flammable": false, "presetIndex": 3, "NBTName": "black_concrete", "NBTArgs": {}}, "4": {"displayName": "Black Concrete Powder", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "black_concrete_powder", "NBTArgs": {}}, "5": {"displayName": "Black Glazed Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "black_glazed_terracotta", "NBTArgs": {}}, "6": {"displayName": "Block of Coal", "supportBlockMandatory": false, "flammable": true, "presetIndex": 6, "NBTName": "coal_block", "NBTArgs": {}}, "7": {"displayName": "Obsidian", "supportBlockMandatory": false, "flammable": false, "presetIndex": 7, "NBTName": "obsidian", "NBTArgs": {}}, "8": {"displayName": "Crying Obsidian", "supportBlockMandatory": false, "flammable": false, "presetIndex": 8, "NBTName": "crying_obsidian", "NBTArgs": {}}, "9": {"displayName": "Blackstone", "supportBlockMandatory": false, "flammable": false, "presetIndex": 9, "NBTName": "blackstone", "NBTArgs": {}}, "10": {"displayName": "Blackstone Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 10, "NBTName": "blackstone_slab", "NBTArgs": {}}, "11": {"displayName": "Basalt", "supportBlockMandatory": false, "flammable": false, "presetIndex": 12, "NBTName": "basalt", "NBTArgs": {}}, "12": {"displayName": "Block Of Netherite", "supportBlockMandatory": false, "flammable": false, "presetIndex": 11, "NBTName": "netherite_block", "NBTArgs": {}}}, "mapdatId": 29, "colourName": "Black Wool"}, "29": {"tonesRGB": {"dark": [176, 168, 54], "normal": [215, 205, 66], "light": [250, 238, 77], "unobtainable": [132, 126, 40]}, "blocks": {"0": {"displayName": "Block of Gold", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "gold_block", "NBTArgs": {}}, "1": {"displayName": "Weighted Pressure Plate (Light)", "supportBlockMandatory": true, "flammable": false, "presetIndex": 1, "NBTName": "light_weighted_pressure_plate", "NBTArgs": {}}, "2": {"displayName": "Block Of Raw Gold", "supportBlockMandatory": false, "flammable": false, "presetIndex": 2, "NBTName": "raw_gold_block", "NBTArgs": {}}}, "mapdatId": 30, "colourName": "Gold"}, "30": {"tonesRGB": {"dark": [64, 154, 150], "normal": [79, 188, 183], "light": [92, 219, 213], "unobtainable": [48, 115, 112]}, "blocks": {"0": {"displayName": "Block of Diamond", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "diamond_block", "NBTArgs": {}}, "1": {"displayName": "Prismarine Bricks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "prismarine_bricks", "NBTArgs": {}}, "2": {"displayName": "Prismarine Brick Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 4, "NBTName": "prismarine_brick_slab", "NBTArgs": {}}, "3": {"displayName": "Dark Prismarine", "supportBlockMandatory": false, "flammable": false, "presetIndex": 2, "NBTName": "dark_prismarine", "NBTArgs": {}}, "4": {"displayName": "Dark Prismarine Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 5, "NBTName": "dark_prismarine_slab", "NBTArgs": {}}, "5": {"displayName": "Beacon", "supportBlockMandatory": true, "flammable": false, "presetIndex": 3, "NBTName": "beacon", "NBTArgs": {}}}, "mapdatId": 31, "colourName": "Diamond"}, "31": {"tonesRGB": {"dark": [52, 90, 180], "normal": [63, 110, 220], "light": [74, 128, 255], "unobtainable": [39, 67, 135]}, "blocks": {"0": {"displayName": "Lapis Lazuli Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "lapis_block", "NBTArgs": {}}}, "mapdatId": 32, "colourName": "Lapis"}, "32": {"tonesRGB": {"dark": [0, 153, 40], "normal": [0, 187, 50], "light": [0, 217, 58], "unobtainable": [0, 114, 30]}, "blocks": {"0": {"displayName": "Block of Emerald", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "emerald_block", "NBTArgs": {}}}, "mapdatId": 33, "colourName": "Emerald"}, "33": {"tonesRGB": {"dark": [91, 60, 34], "normal": [111, 74, 42], "light": [129, 86, 49], "unobtainable": [68, 45, 25]}, "blocks": {"0": {"displayName": "Spruce Log (vertical)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "spruce_log", "NBTArgs": {"axis": "y"}}, "1": {"displayName": "Spruce Planks", "supportBlockMandatory": false, "flammable": true, "presetIndex": 1, "NBTName": "spruce_planks", "NBTArgs": {}}, "2": {"displayName": "Spruce Slab", "supportBlockMandatory": true, "flammable": true, "presetIndex": 2, "NBTName": "spruce_slab", "NBTArgs": {}}, "3": {"displayName": "Oak Log (horizontal)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 3, "NBTName": "oak_log", "NBTArgs": {"axis": "x"}}, "4": {"displayName": "Jungle Log (horizontal)", "supportBlockMandatory": false, "flammable": true, "presetIndex": 4, "NBTName": "jungle_log", "NBTArgs": {"axis": "x"}}, "5": {"displayName": "Podzol", "supportBlockMandatory": false, "flammable": false, "presetIndex": 5, "NBTName": "podzol", "NBTArgs": {}}}, "mapdatId": 34, "colourName": "Spruce"}, "34": {"tonesRGB": {"dark": [79, 1, 0], "normal": [96, 1, 0], "light": [112, 2, 0], "unobtainable": [59, 1, 0]}, "blocks": {"0": {"displayName": "Netherrack", "supportBlockMandatory": false, "flammable": true, "presetIndex": 0, "NBTName": "netherrack", "NBTArgs": {}}, "1": {"displayName": "Nether Brick", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "nether_bricks", "NBTArgs": {}}, "2": {"displayName": "Nether Brick Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "nether_brick_slab", "NBTArgs": {}}, "3": {"displayName": "Magma Block", "supportBlockMandatory": false, "flammable": true, "presetIndex": 3, "NBTName": "magma_block", "NBTArgs": {}}, "4": {"displayName": "Red Nether Bricks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 4, "NBTName": "red_nether_bricks", "NBTArgs": {}}, "5": {"displayName": "Red Nether Brick Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 5, "NBTName": "red_nether_brick_slab", "NBTArgs": {}}}, "mapdatId": 35, "colourName": "Nether"}, "35": {"tonesRGB": {"dark": [147, 124, 113], "normal": [180, 152, 138], "light": [209, 177, 161], "unobtainable": [110, 93, 85]}, "blocks": {"0": {"displayName": "White Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "white_terracotta", "NBTArgs": {}}, "1": {"displayName": "Calcite", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "calcite", "NBTArgs": {}}}, "mapdatId": 36, "colourName": "White Terracotta"}, "36": {"tonesRGB": {"dark": [112, 57, 25], "normal": [137, 70, 31], "light": [159, 82, 36], "unobtainable": [84, 43, 19]}, "blocks": {"0": {"displayName": "Orange Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "orange_terracotta", "NBTArgs": {}}}, "mapdatId": 37, "colourName": "Orange Terracotta"}, "37": {"tonesRGB": {"dark": [105, 61, 76], "normal": [128, 75, 93], "light": [149, 87, 108], "unobtainable": [78, 46, 57]}, "blocks": {"0": {"displayName": "Magenta Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "magenta_terracotta", "NBTArgs": {}}}, "mapdatId": 38, "colourName": "Magenta Terracotta"}, "38": {"tonesRGB": {"dark": [79, 76, 97], "normal": [96, 93, 119], "light": [112, 108, 138], "unobtainable": [59, 57, 73]}, "blocks": {"0": {"displayName": "Light Blue Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "light_blue_terracotta", "NBTArgs": {}}}, "mapdatId": 39, "colourName": "Light Blue Terracotta"}, "39": {"tonesRGB": {"dark": [131, 93, 25], "normal": [160, 114, 31], "light": [186, 133, 36], "unobtainable": [98, 70, 19]}, "blocks": {"0": {"displayName": "Yellow Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "yellow_terracotta", "NBTArgs": {}}}, "mapdatId": 40, "colourName": "Yellow Terracotta"}, "40": {"tonesRGB": {"dark": [72, 82, 37], "normal": [88, 100, 45], "light": [103, 117, 53], "unobtainable": [54, 61, 28]}, "blocks": {"0": {"displayName": "Lime Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "lime_terracotta", "NBTArgs": {}}}, "mapdatId": 41, "colourName": "Lime Terracotta"}, "41": {"tonesRGB": {"dark": [112, 54, 55], "normal": [138, 66, 67], "light": [160, 77, 78], "unobtainable": [84, 40, 41]}, "blocks": {"0": {"displayName": "Pink Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "pink_terracotta", "NBTArgs": {}}}, "mapdatId": 42, "colourName": "Pink Terracotta"}, "42": {"tonesRGB": {"dark": [40, 28, 24], "normal": [49, 35, 30], "light": [57, 41, 35], "unobtainable": [30, 21, 18]}, "blocks": {"0": {"displayName": "Gray Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "gray_terracotta", "NBTArgs": {}}, "1": {"displayName": "Tuff", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "tuff", "NBTArgs": {}}}, "mapdatId": 43, "colourName": "Gray Terracotta"}, "43": {"tonesRGB": {"dark": [95, 75, 69], "normal": [116, 92, 84], "light": [135, 107, 98], "unobtainable": [71, 56, 51]}, "blocks": {"0": {"displayName": "Light Gray Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "light_gray_terracotta", "NBTArgs": {}}, "1": {"displayName": "Waxed Exposed Copper", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "waxed_exposed_copper", "NBTArgs": {}}, "2": {"displayName": "Waxed Exposed Cut Copper Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "waxed_exposed_cut_copper_slab", "NBTArgs": {}}}, "mapdatId": 44, "colourName": "Light Gray Terracotta"}, "44": {"tonesRGB": {"dark": [61, 64, 64], "normal": [75, 79, 79], "light": [87, 92, 92], "unobtainable": [46, 48, 48]}, "blocks": {"0": {"displayName": "Cyan Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "cyan_terracotta", "NBTArgs": {}}}, "mapdatId": 45, "colourName": "Cyan Terracotta"}, "45": {"tonesRGB": {"dark": [86, 51, 62], "normal": [105, 62, 75], "light": [122, 73, 88], "unobtainable": [64, 38, 46]}, "blocks": {"0": {"displayName": "Purple Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "purple_terracotta", "NBTArgs": {}}}, "mapdatId": 46, "colourName": "Purple Terracotta"}, "46": {"tonesRGB": {"dark": [53, 43, 64], "normal": [65, 53, 79], "light": [76, 62, 92], "unobtainable": [40, 32, 48]}, "blocks": {"0": {"displayName": "Blue Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "blue_terracotta", "NBTArgs": {}}}, "mapdatId": 47, "colourName": "Blue Terracotta"}, "47": {"tonesRGB": {"dark": [53, 35, 24], "normal": [65, 43, 30], "light": [76, 50, 35], "unobtainable": [40, 26, 18]}, "blocks": {"0": {"displayName": "Brown Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "brown_terracotta", "NBTArgs": {}}, "1": {"displayName": "Dripstone Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "dripstone_block", "NBTArgs": {}}}, "mapdatId": 48, "colourName": "Brown Terracotta"}, "48": {"tonesRGB": {"dark": [53, 57, 29], "normal": [65, 70, 36], "light": [76, 82, 42], "unobtainable": [40, 43, 22]}, "blocks": {"0": {"displayName": "Green Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "green_terracotta", "NBTArgs": {}}}, "mapdatId": 49, "colourName": "Green Terracotta"}, "49": {"tonesRGB": {"dark": [100, 42, 32], "normal": [122, 51, 39], "light": [142, 60, 46], "unobtainable": [75, 31, 24]}, "blocks": {"0": {"displayName": "Red Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "red_terracotta", "NBTArgs": {}}}, "mapdatId": 50, "colourName": "Red Terracotta"}, "50": {"tonesRGB": {"dark": [26, 15, 11], "normal": [31, 18, 13], "light": [37, 22, 16], "unobtainable": [19, 11, 8]}, "blocks": {"0": {"displayName": "Black Terracotta", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "black_terracotta", "NBTArgs": {}}}, "mapdatId": 51, "colourName": "Black Terracotta"}, "51": {"tonesRGB": {"dark": [133, 33, 34], "normal": [163, 41, 42], "light": [189, 48, 49], "unobtainable": [100, 25, 25]}, "blocks": {"0": {"displayName": "Crimson Nylium", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "crimson_nylium", "NBTArgs": {}}}, "mapdatId": 52, "colourName": "Crimson Nylium"}, "52": {"tonesRGB": {"dark": [104, 44, 68], "normal": [127, 54, 83], "light": [148, 63, 97], "unobtainable": [78, 33, 51]}, "blocks": {"0": {"displayName": "Crimson Stem", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "crimson_stem", "NBTArgs": {}}, "1": {"displayName": "Stripped Crimson Stem", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "stripped_crimson_stem", "NBTArgs": {}}, "2": {"displayName": "Crimson Planks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 2, "NBTName": "crimson_planks", "NBTArgs": {}}, "3": {"displayName": "Crimson Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 3, "NBTName": "crimson_slab", "NBTArgs": {}}}, "mapdatId": 53, "colourName": "Crimson Stem"}, "53": {"tonesRGB": {"dark": [64, 17, 20], "normal": [79, 21, 25], "light": [92, 25, 29], "unobtainable": [48, 13, 15]}, "blocks": {"0": {"displayName": "Crimson Hyphae", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "crimson_hyphae", "NBTArgs": {}}, "1": {"displayName": "Stripped Crimson Hyphae", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "stripped_crimson_hyphae", "NBTArgs": {}}}, "mapdatId": 54, "colourName": "Crimson Hyphae"}, "54": {"tonesRGB": {"dark": [15, 88, 94], "normal": [18, 108, 115], "light": [22, 126, 134], "unobtainable": [11, 66, 70]}, "blocks": {"0": {"displayName": "Warped Nylium", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "warped_nylium", "NBTArgs": {}}, "1": {"displayName": "Waxed Oxidized Copper", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "waxed_oxidized_copper", "NBTArgs": {}}, "2": {"displayName": "Waxed Oxidized Cut Copper Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "waxed_oxidized_cut_copper_slab", "NBTArgs": {}}}, "mapdatId": 55, "colourName": "Warped Nylium"}, "55": {"tonesRGB": {"dark": [40, 100, 98], "normal": [50, 122, 120], "light": [58, 142, 140], "unobtainable": [30, 75, 74]}, "blocks": {"0": {"displayName": "Warped Stem", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "warped_stem", "NBTArgs": {}}, "1": {"displayName": "Stripped Warped Stem", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "stripped_warped_stem", "NBTArgs": {}}, "2": {"displayName": "Warped Planks", "supportBlockMandatory": false, "flammable": false, "presetIndex": 2, "NBTName": "warped_planks", "NBTArgs": {}}, "3": {"displayName": "Warped Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 3, "NBTName": "warped_slab", "NBTArgs": {}}, "4": {"displayName": "Waxed Weathered Copper", "supportBlockMandatory": false, "flammable": false, "presetIndex": 4, "NBTName": "waxed_weathered_copper", "NBTArgs": {}}, "5": {"displayName": "Waxed Weathered Cut Copper Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 5, "NBTName": "waxed_weathered_cut_copper_slab", "NBTArgs": {}}}, "mapdatId": 56, "colourName": "Warped Stem"}, "56": {"tonesRGB": {"dark": [60, 31, 43], "normal": [74, 37, 53], "light": [86, 44, 62], "unobtainable": [45, 23, 32]}, "blocks": {"0": {"displayName": "Warped Hyphae", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "warped_hyphae", "NBTArgs": {}}, "1": {"displayName": "Stripped Warped Hyphae", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "stripped_warped_hyphae", "NBTArgs": {}}}, "mapdatId": 57, "colourName": "Warped Hyphae"}, "57": {"tonesRGB": {"dark": [14, 127, 93], "normal": [17, 155, 114], "light": [20, 180, 133], "unobtainable": [10, 95, 70]}, "blocks": {"0": {"displayName": "Warped Wart Block", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "warped_wart_block", "NBTArgs": {}}}, "mapdatId": 58, "colourName": "Warped Wart"}, "58": {"tonesRGB": {"dark": [70, 70, 70], "normal": [86, 86, 86], "light": [100, 100, 100], "unobtainable": [52, 52, 52]}, "blocks": {"0": {"displayName": "Deepslate", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "deepslate", "NBTArgs": {}}, "1": {"displayName": "Cobbled Deepslate", "supportBlockMandatory": false, "flammable": false, "presetIndex": 1, "NBTName": "cobbled_deepslate", "NBTArgs": {}}, "2": {"displayName": "Cobbled Deepslate Slab", "supportBlockMandatory": true, "flammable": false, "presetIndex": 2, "NBTName": "cobbled_deepslate_slab", "NBTArgs": {}}}, "mapdatId": 59, "colourName": "Deepslate"}, "59": {"tonesRGB": {"dark": [152, 123, 103], "normal": [186, 150, 126], "light": [216, 175, 147], "unobtainable": [114, 92, 77]}, "blocks": {"0": {"displayName": "Block Of Raw Iron", "supportBlockMandatory": false, "flammable": false, "presetIndex": 0, "NBTName": "raw_iron_block", "NBTArgs": {}}}, "mapdatId": 60, "colourName": "Raw Iron"}, "60": {"tonesRGB": {"dark": [89, 117, 105], "normal": [109, 144, 129], "light": [127, 167, 150], "unobtainable": [67, 88, 79]}, "blocks": {"0": {"displayName": "Glow Lichen", "supportBlockMandatory": true, "flammable": true, "presetIndex": 0, "NBTName": "glow_lichen", "NBTArgs": {"down": "true"}}}, "mapdatId": 61, "colourName": "Glow Lichen"}} -------------------------------------------------------------------------------- /img2schem.py: -------------------------------------------------------------------------------- 1 | from functools import lru_cache 2 | 3 | import numpy as np 4 | from litemapy import BlockState, Region 5 | from PIL import Image 6 | from numba import njit 7 | 8 | class FastBlockState(BlockState): 9 | def __init__(self, blockid, properties=None) -> None: 10 | super().__init__(blockid, properties) 11 | 12 | @property 13 | def properties(self): 14 | return self._BlockState__properties 15 | 16 | 17 | AIR = FastBlockState("minecraft:air") 18 | 19 | 20 | class FastRegion(Region): 21 | def __init__(self, x, y, z, width, height, length) -> None: 22 | super().__init__(x, y, z, width, height, length) 23 | self._Region__palette = [ 24 | AIR, 25 | ] 26 | self.__palette_ids = [ 27 | AIR.blockid + str(AIR.properties), 28 | ] 29 | 30 | def setblock(self, x, y, z, block): 31 | x, y, z = self._Region__regcoordinates2storecoords(x, y, z) 32 | if block.blockid + str(block.properties) in self.__palette_ids: 33 | i = self.__palette_ids.index(block.blockid + str(block.properties)) 34 | else: 35 | self._Region__palette.append(block) 36 | self.__palette_ids.append(block.blockid + str(block.properties)) 37 | i = len(self._Region__palette) - 1 38 | self._Region__blocks[x, y, z] = i 39 | 40 | @njit(fastmath=True) 41 | def _img_to_bcolors_jit(rgb_matrix, img, outp_ids, dithering): 42 | ditheringMatrix = ((1, 0, 7), (-1, 1, 3), (0, 1, 5), (1, 1, 1)) 43 | ditheringScaleFactor = 16.0 44 | 45 | width = img.shape[1] 46 | height = img.shape[0] 47 | for y in range(height): 48 | for x in range(width): 49 | 50 | matrix = rgb_matrix - img[y][x] 51 | matrix *= matrix 52 | best_match = matrix.sum(-1).argmin() 53 | outp_ids[y][x] = best_match 54 | best_match = rgb_matrix[best_match] 55 | 56 | if dithering: 57 | differenceRGB = [0, 0, 0] 58 | for channel in range(3): 59 | differenceRGB[channel] = img[y][x][channel] - best_match[channel] 60 | 61 | for i in range(len(ditheringMatrix)): 62 | xOffset = ditheringMatrix[i][0] 63 | yOffset = ditheringMatrix[i][1] 64 | if ( 65 | x + xOffset < width 66 | and x + xOffset >= 0 67 | and y + yOffset < height 68 | and y + yOffset >= 0 69 | ): 70 | nextRGB = img[y + yOffset][x + xOffset] 71 | for channel in range(3): 72 | nextRGB[channel] = int(min(( 73 | max( 74 | ( 75 | ( 76 | nextRGB[channel] 77 | + differenceRGB[channel] 78 | * ditheringMatrix[i][2] 79 | / ditheringScaleFactor 80 | ), 81 | 0, 82 | ) 83 | ), 84 | 255) 85 | )) 86 | 87 | class BColor: 88 | def __init__(self, id, rgb, blocks) -> None: 89 | self.id = id 90 | self.rgb = rgb["normal"] 91 | self.blocks = self._get_blocks(blocks) 92 | 93 | def _get_blocks(self, blocks): 94 | converted_blocks = [] 95 | for key, value in blocks.items(): 96 | converted_blocks.append( 97 | Block( 98 | int(key), value["NBTName"], value["displayName"], value["NBTArgs"] 99 | ) 100 | ) 101 | return converted_blocks 102 | 103 | 104 | class Block: 105 | def __init__(self, id, name, display_name, properties=None): 106 | self.id = id 107 | self.name = name 108 | self.display_name = display_name 109 | self.properties = properties 110 | self.horizontal = False 111 | 112 | def __repr__(self): 113 | return f"Block({self.id}, {self.name}, {self.texture}, {self.rgb}, {self.a})" 114 | 115 | 116 | class ImgToBlocks: 117 | def __init__(self, bcolors): 118 | self.bcolors = bcolors 119 | self.rgb_matrix = np.array( 120 | [color.rgb for color in self.bcolors], dtype=np.int32 121 | ) 122 | 123 | def _img_to_bcolors(self, img, outp_ids, dithering): 124 | img = img 125 | rgb_matrix = self.rgb_matrix 126 | outp = _img_to_bcolors_jit(rgb_matrix, img, outp_ids, dithering) 127 | return outp 128 | 129 | def __call__(self, img, dithering): 130 | shape = img.shape 131 | img = img.astype(np.float32) 132 | outp_ids = np.empty(shape[:2], np.uint16) 133 | self._img_to_bcolors(img, outp_ids, dithering) 134 | return outp_ids 135 | 136 | @lru_cache() 137 | def get_texture(self, texture, textures_dir): 138 | texture_path = textures_dir / f"{texture}.png" 139 | img = Image.open(texture_path).convert("RGBA") 140 | return np.array(img, dtype=np.uint8) 141 | 142 | def image(self, img, compressed_size=None, dithering=False): 143 | shape = img.shape 144 | bcolors_id = self(img, dithering) 145 | outp_img = np.empty(shape[:2], dtype=np.uint8).tolist() 146 | for i in range(shape[0]): 147 | for j in range(shape[1]): 148 | color = self.bcolors[bcolors_id[i][j]].rgb 149 | outp_img[i][j] = color 150 | 151 | img = Image.fromarray(np.array(outp_img, dtype=np.uint8)) 152 | if compressed_size is not None: 153 | img = img.resize(compressed_size) 154 | return img 155 | 156 | 157 | class ImgToSchematic: 158 | axis_change = { 159 | "x": "y", 160 | "y": "x", 161 | } 162 | 163 | def __init__(self, bcolors): 164 | self.block_names = [] 165 | self.bcolors = [] 166 | for bcolor_id, bcolor_value in bcolors.items(): 167 | self.bcolors.append( 168 | BColor(bcolor_id, bcolor_value["tonesRGB"], bcolor_value["blocks"]) 169 | ) 170 | for block in bcolor_value["blocks"].values(): 171 | self.block_names.append(block["displayName"]) 172 | 173 | def prepare_image(self, img, width, height): 174 | img = img.resize((width, height)) 175 | img = np.array(img, dtype=np.uint8) 176 | return img 177 | 178 | def parse_blacklist(self, blacklist): 179 | bcolors = [] 180 | blacklist = set(blacklist) 181 | 182 | for bcolor in self.bcolors: 183 | new_blocks = [] 184 | for block in bcolor.blocks: 185 | if block.display_name not in blacklist: 186 | new_blocks.append(block) 187 | if new_blocks: 188 | bcolor.blocks = new_blocks 189 | bcolors.append(bcolor) 190 | return bcolors 191 | 192 | def get_img2blocks(self, blacklist=None): 193 | if blacklist is None: 194 | blacklist = set() 195 | img2blocks = ImgToBlocks(self.parse_blacklist(blacklist)) 196 | return img2blocks 197 | 198 | def __call__( 199 | self, 200 | img, 201 | width, 202 | height, 203 | vertical=False, 204 | flip=False, 205 | rotate_angle=0, 206 | name="my_schematic", 207 | blacklist=None, 208 | dithering=False, 209 | ): 210 | img = self.prepare_image(img, width, height) 211 | if (not flip) or (flip and vertical): 212 | img = np.flip(img, axis=1) 213 | if rotate_angle: 214 | img = np.rot90(img, -rotate_angle // 90) 215 | 216 | img2blocks = self.get_img2blocks(blacklist) 217 | bcolors = img2blocks.bcolors 218 | 219 | bcolors_id = img2blocks(img, dithering) 220 | if not vertical: 221 | reg = FastRegion(0, 0, 0, width, 1, height) 222 | for x, y, z in reg.allblockpos(): 223 | block = bcolors[bcolors_id[z][width - 1 - x]].blocks[0] 224 | block = FastBlockState(block.name, block.properties) 225 | reg.setblock(x, y, z, block) 226 | else: 227 | reg = FastRegion(0, 0, 0, width, height, 1) 228 | for x, y, z in reg.allblockpos(): 229 | block = bcolors[bcolors_id[height - 1 - y][x]].blocks[0] 230 | block = FastBlockState(block.name, block.properties) 231 | reg.setblock(x, y, z, block) 232 | 233 | schem = reg.as_schematic( 234 | name=name, author="sb", description="Made with img2schem" 235 | ) 236 | return schem 237 | 238 | def get_image( 239 | self, img, width, height, blacklist=None, compressed_size=None, dithering=False 240 | ): 241 | img = self.prepare_image(img, width, height) 242 | 243 | img2blocks = self.get_img2blocks(blacklist) 244 | return img2blocks.image(img, compressed_size, dithering) 245 | -------------------------------------------------------------------------------- /scripts/install.py: -------------------------------------------------------------------------------- 1 | import launch 2 | 3 | if not launch.is_installed("litemapy"): 4 | launch.run_pip("install litemapy==0.7.2b0", "requirements for Mine Diffusion") 5 | if not launch.is_installed("numba"): 6 | launch.run_pip("install numba==0.56.4", "requirements for Mine Diffusion") -------------------------------------------------------------------------------- /scripts/main.py: -------------------------------------------------------------------------------- 1 | import json 2 | from pathlib import Path 3 | 4 | import gradio as gr 5 | from img2schem import ImgToSchematic 6 | from modules import script_callbacks, shared, extensions 7 | 8 | 9 | EXT_DIR = Path(extensions.extensions_dir)/"mine-diffusion" 10 | 11 | with open(EXT_DIR / "colors.json", "r") as f: 12 | bcolors = json.load(f) 13 | img2schem = ImgToSchematic(bcolors) 14 | 15 | with open(EXT_DIR / "blacklists/Base.txt", "r") as f: 16 | blacklist = set([name.strip() for name in f.readlines()]) 17 | blacklist_presets = Path(EXT_DIR / "blacklists").glob("*.txt") 18 | 19 | 20 | def save_schem(img, width, height, vertical, flip, rotate_angle, path, name, dithering): 21 | shared.opts.schem_path = path 22 | path = Path(path) / f"{name}.litematic" 23 | schem = img2schem(img, width, height, vertical, flip, rotate_angle, name, blacklist, dithering) 24 | schem.save(path) 25 | 26 | 27 | def preview(img, width, height, dithering): 28 | return img2schem.get_image(img, width, height, blacklist, dithering=dithering) 29 | 30 | 31 | def blacklist_handler(blacklist_presets_dd, blacklist_dd, action): 32 | if len(blacklist_presets_dd) == 0: 33 | return blacklist_dd 34 | 35 | with open( 36 | EXT_DIR / f"blacklists/{blacklist_presets_dd}.txt", "rb" 37 | ) as blacklist_txt: 38 | blacklist_txt = [ 39 | line.decode("utf-8", "ignore").strip() for line in blacklist_txt.readlines() 40 | ] 41 | if action == "add": 42 | blacklist_dd += blacklist_txt 43 | elif action == "exclude": 44 | blacklist_dd = [i for i in blacklist_dd if i not in blacklist_txt] 45 | elif action == "replace": 46 | blacklist_dd = blacklist_txt 47 | return set(blacklist_dd) 48 | 49 | 50 | def blacklist_update(blacklist_dd): 51 | global blacklist 52 | blacklist = set(blacklist_dd) 53 | 54 | 55 | def blacklist_presets_update(): 56 | blacklist_presets = Path(EXT_DIR / "blacklists").glob("*.txt") 57 | return gr.Dropdown.update(choices=[preset.stem for preset in blacklist_presets]) 58 | 59 | 60 | def blacklist_save(blacklist_dd, name): 61 | with open(EXT_DIR / f"blacklists/{name}.txt", "w") as f: 62 | f.write("\n".join(blacklist_dd)) 63 | 64 | 65 | def on_ui_tabs(): 66 | with gr.Blocks(analytics_enabled=False) as aesthetic_interface: 67 | with gr.Tab("Main"): 68 | with gr.Row(): 69 | with gr.Column(variant="panel"): 70 | img = gr.Image(type="pil") 71 | gr.Markdown("### Schematic Settings") 72 | with gr.Row(variant="compact"): 73 | with gr.Column(scale=0.3, min_width=140): 74 | gr.Markdown("#### Orientation") 75 | vertical = gr.Checkbox( 76 | value=False, label="Vertical", interactive=True 77 | ) 78 | flip = gr.Checkbox( 79 | value=False, label="Flip", interactive=True 80 | ) 81 | rotate_angle = gr.Dropdown( 82 | [-180, -90, 0, 90, 180], 83 | label="Rotation", 84 | value=0, 85 | interactive=True, 86 | ) 87 | with gr.Column(scale=3): 88 | gr.Markdown("#### Schematic Size") 89 | width = gr.Slider( 90 | label="Width", 91 | value=128, 92 | minimum=32, 93 | maximum=8192, 94 | step=2, 95 | interactive=True, 96 | ) 97 | height = gr.Slider( 98 | label="Height", 99 | value=128, 100 | minimum=32, 101 | maximum=8192, 102 | step=2, 103 | interactive=True, 104 | ) 105 | dithering = gr.Checkbox( 106 | value=True, label="Dithering", interactive=True 107 | ) 108 | gr.Markdown("### Save Schematic") 109 | schem_type = gr.Radio( 110 | ["litematic", "schematic(in development)"], 111 | value="litematic", 112 | label="Type", 113 | interactive=False, 114 | ) 115 | path = gr.Textbox( 116 | lines=1, 117 | label="Path to Schematics Folder", 118 | value=shared.opts.schem_path, 119 | ) 120 | name = gr.Textbox( 121 | lines=1, 122 | label="Schematic Name", 123 | value="test", 124 | ) 125 | 126 | with gr.Row(): 127 | save_bn = gr.Button(value="Save Schematic", variant="primary") 128 | preview_bn = gr.Button(value="Preview", variant="primary") 129 | 130 | with gr.Column(scale=0.5): 131 | converted_img = gr.Image(interactive=False) 132 | 133 | save_bn.click( 134 | fn=save_schem, 135 | inputs=[ 136 | img, 137 | width, 138 | height, 139 | vertical, 140 | flip, 141 | rotate_angle, 142 | path, 143 | name, 144 | dithering 145 | ], 146 | ) 147 | 148 | preview_bn.click( 149 | fn=preview, 150 | inputs=[ 151 | img, 152 | width, 153 | height, 154 | dithering, 155 | ], 156 | outputs=[converted_img], 157 | ) 158 | 159 | with gr.Tab("Blocks Blacklist"): 160 | with gr.Row(): 161 | with gr.Column(scale=0.3, min_width=250): 162 | action = gr.Radio( 163 | ["add", "exclude", "replace"], value="replace", label="Action" 164 | ) 165 | blacklist_presets_dd = gr.Dropdown( 166 | [preset.stem for preset in blacklist_presets], 167 | label="Blacklist Presets", 168 | value="Base", 169 | interactive=True, 170 | ) 171 | with gr.Row(): 172 | load_bn = gr.Button("Load") 173 | apply_bn = gr.Button("Apply", variant="primary") 174 | update_blacklist_presets_bn = gr.Button("Update Presets") 175 | blacklist_name = gr.Textbox( 176 | lines=1, 177 | label="Blacklist Name", 178 | ) 179 | save_blacklist_bn = gr.Button("Save Blacklist") 180 | with gr.Column(): 181 | blacklist_dd = gr.Dropdown( 182 | choices=img2schem.block_names, 183 | value=list(blacklist), 184 | multiselect=True, 185 | label="Blacklist", 186 | interactive=True, 187 | ) 188 | load_bn.click( 189 | fn=blacklist_handler, 190 | inputs=[blacklist_presets_dd, blacklist_dd, action], 191 | outputs=[blacklist_dd], 192 | ) 193 | apply_bn.click(fn=blacklist_update, inputs=[blacklist_dd]) 194 | update_blacklist_presets_bn.click( 195 | fn=blacklist_presets_update, outputs=[blacklist_presets_dd] 196 | ) 197 | save_blacklist_bn.click( 198 | fn=blacklist_save, inputs=[blacklist_dd, blacklist_name] 199 | ) 200 | return [(aesthetic_interface, "Mine Diffusion", "Mine Diffusion")] 201 | 202 | 203 | def on_ui_settings(): 204 | default = "YOUR_PATH/.minecraft/schematics" 205 | option = shared.options_section( 206 | ("ais", "Mine Diffusion"), 207 | { 208 | "schem_path": shared.OptionInfo( 209 | default, 210 | "Last schemtatics dir path", 211 | gr.Textbox, 212 | {"lines": 1}, 213 | ) 214 | }, 215 | ) 216 | 217 | shared.opts.add_option("schem_path", option["schem_path"]) 218 | 219 | 220 | script_callbacks.on_ui_settings(on_ui_settings) 221 | script_callbacks.on_ui_tabs(on_ui_tabs) 222 | --------------------------------------------------------------------------------