From f842373958a4668515317e8bbc8fd57cf4fd4a6a Mon Sep 17 00:00:00 2001 From: MysticTempest Date: Sat, 12 Oct 2019 19:45:04 -0500 Subject: [PATCH] Add MineClone2 support, fix dedup issues, extra documentation, and a fix for 'vm:set_lighting' errors in Minetest v5.x. --- Map_Content_Documentation.txt | 132 +++ README.md | 41 + block.py | 40 +- content.py | 11 +- map_content.txt | 483 ++++++---- mcimport.py | 30 +- mcimport.sh | 51 +- mcl2_map_content.txt | 1656 +++++++++++++++++++++++++++++++++ 8 files changed, 2257 insertions(+), 187 deletions(-) create mode 100644 Map_Content_Documentation.txt create mode 100644 mcl2_map_content.txt diff --git a/Map_Content_Documentation.txt b/Map_Content_Documentation.txt new file mode 100644 index 0000000..387f191 --- /dev/null +++ b/Map_Content_Documentation.txt @@ -0,0 +1,132 @@ +=================================================================== +Documentation for "map_content.txt" and "mcl2_map_content.txt": +=================================================================== + + Documentation originally derived from: https://github.com/dgm3333/mcblocks/blob/master/map_content.txt + Updated by MysticTempest +-------------------------------------- + The format of this file is: +MCID data modname:blockname param2 +17 0 mcblocks:Oak_Wood 4 //U + + or with optional preprocessor commands +#if MORETREES + 18 4,12 default:leaves 1 +#else + 17 default:tree // TODO: Trunk orientation +#endif + + !!!! WHITESPACE TYPE (space or tab) IS CRITICAL:- !!!! + + ({tab})MCID({space}MCData1(,MCData2(...))){tab}MTnodename({space}param2){tab}<==Everything beyond this tab is ignored. +Tab characters at the beginning of the line are ignored. +It is critical that tabs and spaces not be mixed up or the line won't be recognised correctly, +and the parsing may fail to progress beyond that point. + + MCID and MCData must be separated by a space/s. + MCData1,2,etc must be separated by commas but no spaces. + There must also be no spaces before MCID or between MCData and the following tab. + MCData must not be >=16, or the remainder of the file will be totally ignored. + MCID/Data and MTnodename are separated by tabs. + MTnodename and param2 are separated by a space/s. +If MCData1 is omitted, the line will match MCIDs with MCData values from 0-15 (and any subsequent entries will be ignored) + Any data following '//' is parsed and not processed + preprocessor commands #if {NAME}, #else and #endif are recognised and intervening lines will be parsed + out or retained dependant on flags in the content.read_content call + + Extra reference documentation: +https://github.com/minetest/minetest/blob/2992b774fe65410a8acd3d06ae82dcd1eb260413/doc/lua_api.txt#L905 +http://dev.minetest.net/minetest.dir_to_wallmounted +http://dev.minetest.net/minetest.dir_to_facedir +=============================================================================== + Minetest uses these values for Wall-Mounted nodes(eg. torches, vines, etc..). + Note that for Y values; it equates to which half of an air node it's in. + Example: + Ladders attached to the bottom of blocks are in the upper half of an air node. Hence are, 0. + Ladders attached to the top of blocks are in the lower half of an air node. Hence are, 1. +param2 direction +0 //U +Y +1 //D -Y +4 //N +Z +2 //E +x +5 //S -Z +3 //W -X + + +-------------------------------------------------------------------------------- + Minetest uses these values for nodebox face directions(eg. chests, Jack O'Lanterns, etc..). + Values range from 0-23, and involve multiple vectors/rotations. + A node's param2 value direction is dependent on a player's face direction. + (ie. A player faces North, but a Jack O'Lantern faces South towards the player with a param2 value of '0'.) +Default values for a node; vector pointing upwards: +param2 direction +0 //N +1 //E +2 //S +3 //W + +------------------------ +Vectors: +------------------------ +Vector points Up; rotation is around the North/South/East/West faces. +0,1,2,3 +Vector points North; rotation is around the East/West/Up/Down faces. +4,5,6,7 +Vector points South; rotation is around the East/West/Up/Down faces. +8,9,10,11 +Vector points East; rotation is around the North/South/Up/Down faces. +12,13,14,15 +Vector points West; rotation is around the North/South/Up/Down faces. +16,17,18,19 +Vector points Down; rotation is around the North/South/East/West faces. +20,21,22,23 +------------------------ +Faces: +------------------------ +Player faces Down, node(eg. Jack O'Lantern) faces Upwards. +0 degree: 4 +90 degree: 13 +180 degree: 10 +270 degree: 19 + +Player faces Up, Jack O'Lantern faces Downwards. +0 degree: 8 +90 degree: 15 +180 degree: 6 +270 degree: 17 + +Player faces North, Jack O'Lantern faces South. +0 degree: 0 +90 degree: 12 +180 degree: 20 +270 degree: 16 + +Player faces East, Jack O'Lantern faces West. +0 degree: 1 +90 degree: 9 +180 degree: 23 +270 degree: 5 + +Player faces South, Jack O'Lantern faces North. +0 degree: 2 +90 degree: 18 +180 degree: 22 +270 degree: 14 + +Player faces West, Jack O'Lantern faces East. +0 degree: 3 +90 degree: 7 +180 degree: 21 +270 degree: 11 + + +-------------------------------------------------------------------------------- +Lastly, it appears some Minecraft Blockstates can be converted to data values. +At least blockstates for axes(eg. Purpur Pillar, Bone Block, etc..). +Example: +Purpur pillar; default & on its side facing N,E,S,W; blockstate translation for X,Y,Z axes. +202 0 mcl_end:purpur_pillar //Default, vector pointing upward, with a MC blockstate for Y +202 4 mcl_end:purpur_pillar 12 //East,West pointing vectors with a MC blockstate for X +202 8 mcl_end:purpur_pillar 6 //North,South pointing vectors with a MC blockstate for Z + +===================================================================================== diff --git a/README.md b/README.md index 343925c..cbe9c76 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,47 @@ script without any parameters. This takes you through a bunch of screens that you can use to select a world and configure a few settings. + + +# Extra Notes: + +Now allows a choice of conversion to Minetest Game or MineClone2. +Currrently compatible with Minecraft Worlds up to, & including v1.12.2 + + +##### Coordinate Conversion from Minecraft to Minetest: +``` +X = Approximately the same in both. +Y = Approximately -64 nodes. +Z = The number is approximately inverted. + +Example of converted coordinates: +Minecraft: 704, 4, -318 +Minetest: 720, -60, 334 +``` + + +##### For previously converted worlds in Minetest v5.x: +Take note that Minetest v5.x will now spam errors related to the lightfix code in the converted world's "/worldmods/mcimport/init.lua" file. + +Example Warning Message: +``` +WARNING[Emerge-0]: VoxelManip:set_lighting called for a non-mapgen VoxelManip object +``` + +It's recommended to comment it out to avoid this issue. +``` + -- vm:set_lighting({day = 15, night = 0}, minp, maxp) +``` + + +##### Note: +Line 36 of "mcimport.py" has the gameid for MineClone2. +```wo.write("gameid = mineclone2\n")``` +Currently set to use the foldername generated by downloading MCL2 from the ContentDB. +If using a version of MCL2 in your gamefolder not named "mineclone2"; you will need to adjust accordingly. + + # License: Copyright (C) 2016 - Nore, dgm555, sofar and others diff --git a/block.py b/block.py index 3589365..001d49f 100644 --- a/block.py +++ b/block.py @@ -270,9 +270,6 @@ def isdoor(b): # rotate lily pads randomly elif blocks[i] == 111: param2[i] = random.randint(0,3) - # melon/pumpkin blocks - elif blocks[i] == 86 or blocks[i] == 103: - param2[i] = random.randint(0,23) # grass of varying length randomly elif blocks[i] == 31 and data[i] == 1: content[i], param2[i] = conversion_table[931][random.randint(0,4)] @@ -290,6 +287,43 @@ def isdoor(b): alt = 964 if blocks[i] == 71: alt = 966 + if blocks[i] == 193: + alt = 968 + if blocks[i] == 194: + alt = 970 + if blocks[i] == 195: + alt = 972 + if blocks[i] == 196: + alt = 974 + if blocks[i] == 197: + alt = 976 + content[i], param2[i] = conversion_table[alt][d_face|d_open|(d_right<<3)] + if d_right == 1: + self.metadata[(i & 0xf, (i>>8) & 0xf, (i>>4) & 0xf)] = ({ "right": "1" }, {}) + # re-add code for converting top part of door for MineClone2, ignored for Minetest Game + elif isdoor(blocks[i]) and data[i] >= 8: # top part + below = i - 256 + if (below < 0): + logger.warning('Unable to fix door - bottom part is across block boundary! (%d < 0)' % below) + elif isdoor(blocks[below]) and data[below] >= 8: + logger.warning('Unable to fix door - top part 0x%x below top part 0x%x!', data[i], data[below]) + else: + d_right = data[i] & 1 # 0 - left, 1 - right + d_open = data[below] & 4 # 0 - closed, 1 - open + d_face = data[below] & 3 # n,e,s,w orientation + alt = 965 + if blocks[i] == 71: + alt = 967 + if blocks[i] == 193: + alt = 969 + if blocks[i] == 194: + alt = 971 + if blocks[i] == 195: + alt = 973 + if blocks[i] == 196: + alt = 975 + if blocks[i] == 197: + alt = 977 content[i], param2[i] = conversion_table[alt][d_face|d_open|(d_right<<3)] if d_right == 1: self.metadata[(i & 0xf, (i>>8) & 0xf, (i>>4) & 0xf)] = ({ "right": "1" }, {}) diff --git a/content.py b/content.py index ef0f356..0ac4ab9 100644 --- a/content.py +++ b/content.py @@ -1,3 +1,7 @@ +#!/bin/env python + +import os + def preprocess(lines, flags): output = [] @@ -33,8 +37,13 @@ def get_id(name_id_mapping, name): name_id_mapping.append(name) return len(name_id_mapping)-1 +if os.environ["GAME_ID"] == "MTG": + map_content_gameID = "map_content.txt" +elif os.environ["GAME_ID"] == "MCL2": + map_content_gameID = "mcl2_map_content.txt" + def read_content(flags): - with open("map_content.txt", "r") as f: + with open(map_content_gameID, "r") as f: lines = f.readlines() lines = preprocess(lines, flags) diff --git a/map_content.txt b/map_content.txt index 9b6435a..52b420b 100644 --- a/map_content.txt +++ b/map_content.txt @@ -1,143 +1,20 @@ -// Documentation originally derived from: https://github.com/dgm3333/mcblocks/blob/master/map_content.txt -// Updated by MysticTempest -// -// The format of this file is: -//MCID data modname:blockname param2 -//17 0 mcblocks:Oak_Wood 4 //U - -// or with optional preprocessor commands -//#if MORETREES -// 18 4,12 default:leaves 1 -//#else -// 17 default:tree // TODO: Trunk orientation -//#endif - -// !!!! WHITESPACE TYPE (space or tab) IS CRITICAL:- !!!! - -// ({tab})MCID({space}MCData1(,MCData2(...))){tab}MTnodename({space}param2){tab}<==Everything beyond this tab is ignored. -//Tab characters at the beginning of the line are ignored. -//It is critical that tabs and spaces not be mixed up or the line won't be recognised correctly, -//and the parsing may fail to progress beyond that point. - -// MCID and MCData must be separated by a space/s. -// MCData1,2,etc must be separated by commas but no spaces. -// There must also be no spaces before MCID or between MCData and the following tab. -// MCData must not be >=16, or the remainder of the file will be totally ignored. -// MCID/Data and MTnodename are separated by tabs. -// MTnodename and param2 are separated by a space/s. -//If MCData1 is omitted, the line will match MCIDs with MCData values from 0-15 (and any subsequent entries will be ignored) -// Any data following '//' is parsed and not processed -// preprocessor commands #if {NAME}, #else and #endif are recognised and intervening lines will be parsed -// out or retained dependant on flags in the content.read_content call - -// Extra reference documentation: -//https://github.com/minetest/minetest/blob/2992b774fe65410a8acd3d06ae82dcd1eb260413/doc/lua_api.txt#L905 -//http://dev.minetest.net/minetest.dir_to_wallmounted -//http://dev.minetest.net/minetest.dir_to_facedir - -//=============================================================================== -// Minetest uses these values for Wall-Mounted nodes(eg. torches, vines, etc..). -// Note that for Y values; it equates to which half of an air node it's in. -// Example: -// Ladders attached to the bottom of blocks are in the upper half of an air node. Hence are, 0. -// Ladders attached to the top of blocks are in the lower half of an air node. Hence are, 1. -//param2 direction -//0 //U +Y -//1 //D -Y -//4 //N +Z -//2 //E +x -//5 //S -Z -//3 //W -X - - -//-------------------------------------------------------------------------------- -// Minetest uses these values for nodebox face directions(eg. chests, Jack O'Lanterns, etc..). -// Values range from 0-23, and involve multiple vectors/rotations. -// A node's param2 value direction is dependent on a player's face direction. -// (ie. A player faces North, but a Jack O'Lantern faces South towards the player with a param2 value of '0'.) -//Default values for a node; vector pointing upwards: -//param2 direction -//0 //N -//1 //E -//2 //S -//3 //W - -//------------------------ -//Vectors: -//------------------------ -//Vector points Up; rotation is around the North/South/East/West faces. -//0,1,2,3 -//Vector points North; rotation is around the East/West/Up/Down faces. -//4,5,6,7 -//Vector points South; rotation is around the East/West/Up/Down faces. -//8,9,10,11 -//Vector points East; rotation is around the North/South/Up/Down faces. -//12,13,14,15 -//Vector points West; rotation is around the North/South/Up/Down faces. -//16,17,18,19 -//Vector points Down; rotation is around the North/South/East/West faces. -//20,21,22,23 -//------------------------ -//Faces: -//------------------------ -//Player faces Down, node(eg. Jack O'Lantern) faces Upwards. -//0 degree: 4 -//90 degree: 13 -//180 degree: 10 -//270 degree: 19 - -//Player faces Up, Jack O'Lantern faces Downwards. -//0 degree: 8 -//90 degree: 15 -//180 degree: 6 -//270 degree: 17 - -//Player faces North, Jack O'Lantern faces South. -//0 degree: 0 -//90 degree: 12 -//180 degree: 20 -//270 degree: 16 - -//Player faces East, Jack O'Lantern faces West. -//0 degree: 1 -//90 degree: 9 -//180 degree: 23 -//270 degree: 5 - -//Player faces South, Jack O'Lantern faces North. -//0 degree: 2 -//90 degree: 18 -//180 degree: 22 -//270 degree: 14 - -//Player faces West, Jack O'Lantern faces East. -//0 degree: 3 -//90 degree: 7 -//180 degree: 21 -//270 degree: 11 - - -//-------------------------------------------------------------------------------- -//Lastly, it appears some Minecraft Blockstates can be converted to data values. -//At least blockstates for axes(eg. Purpur Pillar, Bone Block, etc..). -//Example: -//Purpur pillar; default & on its side facing N,E,S,W; blockstate translation for X,Y,Z axes. -//202 0 mcl_end:purpur_pillar //Default, vector pointing upward, with a MC blockstate for Y -//202 4 mcl_end:purpur_pillar 12 //East,West pointing vectors with a MC blockstate for X -//202 8 mcl_end:purpur_pillar 6 //North,South pointing vectors with a MC blockstate for Z - +// For documentation see - Map_Content_Documentation.txt //===================================================================================== -1 0 default:stone // TODO: Stone type -1 1 default:stone // TODO: Stone type -1 2 xdecor:desertstone_tile -1 3 default:stone // TODO: Stone type -1 4 xdecor:hard_clay -1 5 default:stone // TODO: Stone type -1 6 xdecor:stone_tile + + +1 0 default:stone +1 1 default:stone // granite +1 2 xdecor:desertstone_tile // polished granite +1 3 default:stone // diorite +1 4 xdecor:hard_clay // polished diorite +1 5 default:stone // andesite +1 6 xdecor:stone_tile // polished andesite 2 default:dirt_with_grass 3 default:dirt +//3 1 coarse dirt +//3 2 podzol 4 default:cobble #ifdef MORETREES @@ -268,11 +145,16 @@ #endif -//19 default:nyancat_rainbow // was removed from mtg +//19 0 sponge +//19 1 wet sponge 20 default:glass 21 lapis:stone_with_lapis 22 lapis:lapisblock -24 default:sandstone // TODO: Sandstone type +//23 0-13 dispenser + +24 default:sandstone +//24 1 carved sandstone +//24 2 smooth sandstone 25 mesecons_noteblock:noteblock // FIXME: get pitch from entity data @@ -285,8 +167,8 @@ 26 10 beds:bed_top 0 26 11 beds:bed_top 1 -27 carts:powerrail // Powered rail -28 carts:rail // Detector rail +27 carts:powerrail // Powered rail 0-13 +28 carts:rail // Detector rail 0-13 //sticky piston 29 0 mesecons_pistons:piston_sticky_off 8 @@ -303,10 +185,11 @@ 29 13 mesecons_pistons:piston_sticky_on 3 30 xdecor:cobweb + 31 0 default:dry_shrub 31 2 ferns:tree_fern_leaves - 31 1 default:grass_5 // code randomly changes height + 32 default:dry_shrub //normal piston @@ -467,7 +350,7 @@ 59 7 farming:wheat_8 60 0 farming:soil -60 farming:soil_wet +60 farming:soil_wet // 1-7 61 2 default:furnace 2 // TODO: contents 61 3 default:furnace 0 @@ -542,7 +425,7 @@ 72 mesecons_pressureplates:pressure_plate_wood_off 73 default:stone_with_mese // Redstone ore -74 default:stone_with_mese +74 default:stone_with_mese // Redstone ore lit 75 1 mesecons_torch:mesecon_torch_off 3 75 2 mesecons_torch:mesecon_torch_off 2 @@ -563,14 +446,14 @@ 77 4 mesecons_button:button_off 2 77 5 mesecons_button:button_off 10 -78 default:snow // TODO: snow height +78 default:snow // TODO: snow height 0-7 79 default:ice 80 default:snowblock 81 default:cactus 82 default:clay 83 default:papyrus - +//84 jukebox 85 default:fence_wood 86 crops:pumpkin // rotates randomly @@ -585,6 +468,8 @@ 90 2 nether:portal 1 #endif +//92 cake 0-6 + 93 0 mesecons_delayer:delayer_off_1 3 93 1 mesecons_delayer:delayer_off_1 0 93 2 mesecons_delayer:delayer_off_1 1 @@ -619,6 +504,8 @@ 94 14 mesecons_delayer:delayer_on_4 1 94 15 mesecons_delayer:delayer_on_4 2 +//95 Stained Glass 0-15 + 96 0 doors:trapdoor 2 96 1 doors:trapdoor 0 96 2 doors:trapdoor 1 @@ -636,21 +523,28 @@ 96 14 doors:trapdoor_open 23 96 15 doors:trapdoor_open 21 -97 0 default:stone // Silverfish +// Silverfish +97 0 default:stone 97 1 default:cobble 97 2 default:stonebrick -97 3 default:cobble -97 4 default:cobble -97 5 default:cobble +97 3 default:cobble //mossy stonebrick +97 4 default:cobble //cracked stonebrick +97 5 xdecor:stone_rune //carved stonebrick 98 0,1,2 default:stonebrick 98 3 xdecor:stone_rune +//99 0-15 giant brown mushroom +//100 0-15 giant red mushroom + 101 xpanes:bar 102 xpanes:pane_15 // FIXME: rotation, shape 103 crops:melon // rotates randomly +//104 0-7 pumpkin stem stages +//105 0-7 melon stem stages + 106 1 vines:side_middle 5 //Ignore errors about other 106 #'s. 106 2 vines:side_middle 3 //The bits are toggleable; meaning you don't need both. 106 4 vines:side_middle 4 //These 4 will cover all bases(N,E,S,W). @@ -704,13 +598,21 @@ 114 7 stairs:stair_nether_brick 20 #endif +//115 0-3 nether wart + 116 xdecor:enchantment_table +//117 0 brewing stand 118 0 xdecor:cauldron_empty 118 1 xdecor:cauldron_empty // FIXME: should be 1/3 full 118 2 xdecor:cauldron_empty // FIXME: should be 2/3 full 118 3 xdecor:cauldron_empty // FIXME: should be full +//119 0 end portal +//120 0-7 end portal frame block +//121 0 end stone +//122 0 dragon egg + 123 mesecons_lightstone:lightstone_gray_off 124 mesecons_lightstone:lightstone_gray_on @@ -755,6 +657,8 @@ 126 13 stairs:slab_wood 22 #endif +//127 cocoa pod + 128 0 stairs:stair_sandstone 1 128 1 stairs:stair_sandstone 3 128 2 stairs:stair_sandstone 2 @@ -771,6 +675,10 @@ 130 4 xdecor:enderchest 1 130 5 xdecor:enderchest 3 +//131 tripwire hook +//132 tripwire +//133 0 emerald block + #ifdef MORETREES 134 0 moretrees:stair_spruce_planks 1 134 1 moretrees:stair_spruce_planks 3 @@ -829,11 +737,16 @@ 137 mesecons_commandblock:commandblock_off // FIXME: formspec +//138 beacon + 139 1 walls:mossycobble 139 walls:cobble 140 flowerpot:empty // code will plant right flower +//141 0-7 carrot growth stages +//142 0-7 potato growth stages + 143 0 mesecons_button:button_off 8 143 1 mesecons_button:button_off 3 143 2 mesecons_button:button_off 1 @@ -841,11 +754,18 @@ 143 4 mesecons_button:button_off 2 143 5 mesecons_button:button_off 10 +//144 mob heads +//145 0-11 anvils + 146 2 default:chest 2 // Trapped chest 146 3 default:chest 0 146 4 default:chest 1 146 5 default:chest 3 +//147 0 weighted pressure plate (light) +//148 0 weighted pressure plate (heavy) +//149 0-15 comparator + 151 0 mesecons_solarpanel:solar_panel_off 1 151 1 mesecons_solarpanel:solar_panel_on 1 151 2 mesecons_solarpanel:solar_panel_on 1 @@ -864,6 +784,7 @@ 151 15 mesecons_solarpanel:solar_panel_on 1 152 default:mese +//154 hoppers #ifdef QUARTZ 153 quartz:quartz_ore @@ -885,6 +806,7 @@ #endif 157 carts:rail // activator rail +//158 0-13 droppers 159 0 hardenedclay:hardened_clay_white 159 1 hardenedclay:hardened_clay_orange @@ -903,7 +825,7 @@ 159 14 hardenedclay:hardened_clay_red 159 15 hardenedclay:hardened_clay_black -160 xpanes:pane // no colors here sadly +160 xpanes:pane // 0-15 stained glass panes - no colors here sadly 163 0 stairs:stair_acacia_wood 1 163 1 stairs:stair_acacia_wood 3 @@ -934,6 +856,9 @@ 164 7 stairs:stair_wood 20 #endif +//165 slimeblock +//166 barrier + 167 0 doors:trapdoor_steel 2 167 1 doors:trapdoor_steel 0 167 2 doors:trapdoor_steel 1 @@ -951,6 +876,11 @@ 167 14 doors:trapdoor_steel_open 23 167 15 doors:trapdoor_steel_open 21 +//168 0 prismarine +//168 1 prismarine brick +//168 2 dark prismarine +//169 0 sea_lantern + 170 farming:straw 171 0 carpet:white @@ -970,19 +900,28 @@ 171 14 carpet:red 171 15 carpet:black +//172 hardened clay 173 default:coalblock -174 default:ice // approx +174 default:ice // packed ice +//double plants 0-5 = bottom halves 175 0 flowers:sunflower - +//175 1 lilac 175 2 default:junglegrass +//175 3 double_fern +//175 4 rose_bush +//175 5 peony +//175 8-13 double plant top halves - Bug in minecraft maps all top halves to "175 10"; need to fix elsewhere in code. + +//176 standing banners +//177 hanging banners // 178 is an inverted daylight sensor, cannot convert! -179 1 default:desert_stone // approx -179 2 default:desert_stone // approx +//red sandstone +179 1 default:desert_stone // carved red sandstone +179 2 default:desert_stone // smooth red sandstone 179 default:desert_stone - 180 0 stairs:stair_desert_stone 1 180 1 stairs:stair_desert_stone 3 180 2 stairs:stair_desert_stone 2 @@ -991,9 +930,7 @@ 180 5 stairs:stair_desert_stone 21 180 6 stairs:stair_desert_stone 22 180 7 stairs:stair_desert_stone 20 - 181 default:desert_stone - 182 8 stairs:slab_desert_stone 22 182 stairs:slab_desert_stone @@ -1057,6 +994,145 @@ 196 air // door parts get fixed up in code 197 air // door parts get fixed up in code +//198 0-5 end rod +//199 0 chorus plant +//200 0-5 chorus flower +//201 0 purpur block +//202 0 purpur pillar +//203 0-7 purpur stairs +//204 purpur block +//205 purpur slabs +//206 0 end bricks +//207 0-3 beetroot growth stages +//208 0 grass_path +//209 end gateway +//210 repeating command block +//211 0,5 chain command block +//212 0-3 frosted ice +//213 0 magma block +//214 0 nether_wart_block +//215 0 red_nether_brick +//216 bone block +//218 0-5 observer + +//219 1 white shulker box +//220 1 orange shulker box +//221 1 magenta shulker box +//222 1 lightblue shulker box +//223 1 yellow shulker box +//224 1 green shulker box +//225 1 pink shulker box +//226 1 dark grey shulker box +//227 1 grey shulker box +//228 1 cyan shulker box +//229 1 violet shulker box +//230 1 blue shulker box +//231 1 brown shulker box +//232 1 dark green shulker box +//233 1 red shulker box +//234 1 black shulker box + +// Glazed Terracottas and their rotations. +//235 0 glazed terracotta white 0 +//236 0 glazed terracotta orange 0 +//237 0 glazed terracotta magenta 0 +//238 0 glazed terracotta light blue 0 +//239 0 glazed terracotta yellow 0 +//240 0 glazed terracotta lime 0 +//241 0 glazed terracotta pink 0 +//242 0 glazed terracotta grey 0 +//243 0 glazed terracotta silver 0 +//244 0 glazed terracotta cyan 0 +//245 0 glazed terracotta purple 0 +//246 0 glazed terracotta blue 0 +//247 0 glazed terracotta brown 0 +//248 0 glazed terracotta green 0 +//249 0 glazed terracotta red 0 +//250 0 glazed terracotta black 0 +//235 1 glazed terracotta white 1 +//236 1 glazed terracotta orange 1 +//237 1 glazed terracotta magenta 1 +//238 1 glazed terracotta light blue 1 +//239 1 glazed terracotta yellow 1 +//240 1 glazed terracotta lime 1 +//241 1 glazed terracotta pink 1 +//242 1 glazed terracotta grey 1 +//243 1 glazed terracotta silver 1 +//244 1 glazed terracotta cyan 1 +//245 1 glazed terracotta purple 1 +//246 1 glazed terracotta blue 1 +//247 1 glazed terracotta brown 1 +//248 1 glazed terracotta green 1 +//249 1 glazed terracotta red 1 +//250 1 glazed terracotta black 1 +//235 2 glazed terracotta white 5 +//236 2 glazed terracotta orange 5 +//237 2 glazed terracotta magenta 5 +//238 2 glazed terracotta light blue 5 +//239 2 glazed terracotta yellow 5 +//240 2 glazed terracotta lime 5 +//241 2 glazed terracotta pink 5 +//242 2 glazed terracotta grey 5 +//243 2 glazed terracotta silver 5 +//244 2 glazed terracotta cyan 5 +//245 2 glazed terracotta purple 5 +//246 2 glazed terracotta blue 5 +//247 2 glazed terracotta brown 5 +//248 2 glazed terracotta green 5 +//249 2 glazed terracotta red 5 +//250 2 glazed terracotta black 5 +//235 3 glazed terracotta white 3 +//236 3 glazed terracotta orange 3 +//237 3 glazed terracotta magenta 3 +//238 3 glazed terracotta light blue 3 +//239 3 glazed terracotta yellow 3 +//240 3 glazed terracotta lime 3 +//241 3 glazed terracotta pink 3 +//242 3 glazed terracotta grey 3 +//243 3 glazed terracotta silver 3 +//244 3 glazed terracotta cyan 3 +//245 3 glazed terracotta purple 3 +//246 3 glazed terracotta blue 3 +//247 3 glazed terracotta brown 3 +//248 3 glazed terracotta green 3 +//249 3 glazed terracotta red 3 +//250 3 glazed terracotta black 3 + +//251 0 concrete white +//251 1 concrete orange +//251 2 concrete magenta +//251 3 concrete light blue +//251 4 concrete yellow +//251 5 concrete lime +//251 6 concrete pink +//251 7 concrete grey +//251 8 concrete silver +//251 9 concrete cyan +//251 10 concrete purple +//251 11 concrete blue +//251 12 concrete brown +//251 13 concrete green +//251 14 concrete red +//251 15 concrete black + +//252 0 concrete powder white +//252 1 concrete powder orange +//252 2 concrete powder magenta +//252 3 concrete powder light blue +//252 4 concrete powder yellow +//252 5 concrete powder lime +//252 6 concrete powder pink +//252 7 concrete powder grey +//252 8 concrete powder silver +//252 9 concrete powder cyan +//252 10 concrete powder purple +//252 11 concrete powder blue +//252 12 concrete powder brown +//252 13 concrete powder green +//252 14 concrete powder red +//252 15 concrete powder black + + 324 0,4 doors:door_wood_b_1 2 324 1,5 doors:door_wood_b_1 3 324 2,6 doors:door_wood_b_1 0 @@ -1139,3 +1215,98 @@ 966 13 doors:door_steel_a 1 966 14 doors:door_steel_a 2 966 15 doors:door_steel_a 3 + + +//spruce wood door +968 0 doors:door_wood_a 1 +968 1 doors:door_wood_a 2 +968 2 doors:door_wood_a 3 +968 3 doors:door_wood_a 0 +968 4 doors:door_wood_b 2 +968 5 doors:door_wood_b 3 +968 6 doors:door_wood_b 0 +968 7 doors:door_wood_b 1 +968 8 doors:door_wood_b 1 +968 9 doors:door_wood_b 2 +968 10 doors:door_wood_b 3 +968 11 doors:door_wood_b 0 +968 12 doors:door_wood_a 0 +968 13 doors:door_wood_a 1 +968 14 doors:door_wood_a 2 +968 15 doors:door_wood_a 3 + + +//birch wood door +970 0 doors:door_wood_a 1 +970 1 doors:door_wood_a 2 +970 2 doors:door_wood_a 3 +970 3 doors:door_wood_a 0 +970 4 doors:door_wood_b 2 +970 5 doors:door_wood_b 3 +970 6 doors:door_wood_b 0 +970 7 doors:door_wood_b 1 +970 8 doors:door_wood_b 1 +970 9 doors:door_wood_b 2 +970 10 doors:door_wood_b 3 +970 11 doors:door_wood_b 0 +970 12 doors:door_wood_a 0 +970 13 doors:door_wood_a 1 +970 14 doors:door_wood_a 2 +970 15 doors:door_wood_a 3 + + +//jungle wood door +972 0 doors:door_wood_a 1 +972 1 doors:door_wood_a 2 +972 2 doors:door_wood_a 3 +972 3 doors:door_wood_a 0 +972 4 doors:door_wood_b 2 +972 5 doors:door_wood_b 3 +972 6 doors:door_wood_b 0 +972 7 doors:door_wood_b 1 +972 8 doors:door_wood_b 1 +972 9 doors:door_wood_b 2 +972 10 doors:door_wood_b 3 +972 11 doors:door_wood_b 0 +972 12 doors:door_wood_a 0 +972 13 doors:door_wood_a 1 +972 14 doors:door_wood_a 2 +972 15 doors:door_wood_a 3 + + +//acacia wood door +974 0 doors:door_wood_a 1 +974 1 doors:door_wood_a 2 +974 2 doors:door_wood_a 3 +974 3 doors:door_wood_a 0 +974 4 doors:door_wood_b 2 +974 5 doors:door_wood_b 3 +974 6 doors:door_wood_b 0 +974 7 doors:door_wood_b 1 +974 8 doors:door_wood_b 1 +974 9 doors:door_wood_b 2 +974 10 doors:door_wood_b 3 +974 11 doors:door_wood_b 0 +974 12 doors:door_wood_a 0 +974 13 doors:door_wood_a 1 +974 14 doors:door_wood_a 2 +974 15 doors:door_wood_a 3 + + +//dark oak wood door +976 0 doors:door_wood_a 1 +976 1 doors:door_wood_a 2 +976 2 doors:door_wood_a 3 +976 3 doors:door_wood_a 0 +976 4 doors:door_wood_b 2 +976 5 doors:door_wood_b 3 +976 6 doors:door_wood_b 0 +976 7 doors:door_wood_b 1 +976 8 doors:door_wood_b 1 +976 9 doors:door_wood_b 2 +976 10 doors:door_wood_b 3 +976 11 doors:door_wood_b 0 +976 12 doors:door_wood_a 0 +976 13 doors:door_wood_a 1 +976 14 doors:door_wood_a 2 +976 15 doors:door_wood_a 3 diff --git a/mcimport.py b/mcimport.py index 1892f39..2cec740 100644 --- a/mcimport.py +++ b/mcimport.py @@ -24,10 +24,16 @@ print("A minetest world already exists - refusing to overwrite it.") exit(1) -if not os.path.exists(sys.argv[2] + "/world.mt"): - with open(sys.argv[2] + "/world.mt", "w") as wo: - wo.write("backend = sqlite3\n") - wo.write("gameid = minetest\n") +if os.environ["GAME_ID"] == "MTG": + if not os.path.exists(sys.argv[2] + "/world.mt"): + with open(sys.argv[2] + "/world.mt", "w") as wo: + wo.write("backend = sqlite3\n") + wo.write("gameid = minetest\n") +elif os.environ["GAME_ID"] == "MCL2": + if not os.path.exists(sys.argv[2] + "/world.mt"): + with open(sys.argv[2] + "/world.mt", "w") as wo: + wo.write("backend = sqlite3\n") + wo.write("gameid = mineclone2\n") if not os.path.exists(sys.argv[2] + "/worldmods"): os.makedirs(sys.argv[2]+"/worldmods") @@ -41,19 +47,21 @@ sn.write("minetest.set_mapgen_params({chunksize = 1})\n\n") sn.write("-- comment the line below if you want to enable mapgen (will destroy things!)\n") sn.write("minetest.set_mapgen_params({mgname = \"singlenode\"})\n\n") + sn.write("-- Comment out set_lighting fix. Not necessary, and causes error spam in Minetest v5.x\n") sn.write("-- below lines will recalculate lighting on map block load\n") sn.write("minetest.register_on_generated(function(minp, maxp, seed)\n") sn.write(" local vm = minetest.get_voxel_manip(minp, maxp)\n") - sn.write(" vm:set_lighting({day = 15, night = 0}, minp, maxp)\n") + sn.write("-- vm:set_lighting({day = 15, night = 0}, minp, maxp)\n") sn.write(" vm:update_liquids()\n") sn.write(" vm:write_to_map()\n") sn.write(" vm:update_map()\n") sn.write("end)\n\n") -if not os.path.exists(sys.argv[2]+"/get-mods.sh"): - path = sys.argv[2]+"/get-mods.sh" - with open(path, "w") as md: - md.write('''\ +if os.environ["GAME_ID"] == "MTG": + if not os.path.exists(sys.argv[2]+"/get-mods.sh"): + path = sys.argv[2]+"/get-mods.sh" + with open(path, "w") as md: + md.write('''\ #!/bin/sh # run this script to automatically get all the required mods @@ -99,6 +107,7 @@ st = os.stat(path) os.chmod(path, st.st_mode | stat.S_IXUSR) + mcmap = MCMap(sys.argv[1]) mtmap = MTMap(sys.argv[2]) @@ -107,4 +116,5 @@ mtmap.save() print("Conversion finished!\n") -print("Run \"sh get-mods.sh\" in the new world folder to automatically download all required mods.") +if os.environ["GAME_ID"] == "MTG": + print("Run \"sh get-mods.sh\" in the new world folder to automatically download all required mods.") diff --git a/mcimport.sh b/mcimport.sh index 8d8b726..9adef9c 100755 --- a/mcimport.sh +++ b/mcimport.sh @@ -6,8 +6,8 @@ cd `dirname $0` -if [ ! -f map_content.txt ]; then - zenity --info --width=800 --text "Unable to locate \"map_content.txt\" file - this is a critical error, and this program is unable to continue." +if [ ! -f map_content.txt ] || [ ! -f mcl2_map_content.txt ]; then + zenity --info --width=800 --text "Unable to locate \"map_content.txt\" or \"mcl2_map_content.txt\" file - this is a critical error, and this program is unable to continue." exit 1 fi @@ -32,23 +32,40 @@ if [ -d "${HOME}/.minetest/worlds/$OUT" ]; then rm -rf "${HOME}/.minetest/worlds/$OUT" fi -zenity --info --width=800 --title="Conversion in progress" --text="The conversion is now running and make take a *very* long time to finish. Do not be alarmed by output lines that show \"Unknown Minecraft Block\" messages, this is normal and can usually be ignored without issues. You can safely close this window." & +if [ $? == 0 ]; then +`zenity --question --width=800 --title="Select a game for the converted map?" --text="Would you like mcimport to convert the map for use in Minetest Game or MineClone2?" --ok-label="Minetest Game" --cancel-label="MineClone2"` + if [ $? == 0 ]; then + zenity --info --width=800 --title="Conversion in progress" --text="The conversion is now running and may take a *very* long time to finish. Do not be alarmed by output lines that show \"Unknown Minecraft Block\" messages, this is normal and can usually be ignored without issues. You can safely close this window." & -python3 mcimport.py "$IN" "${HOME}/.minetest/worlds/$OUT" + GAME_ID="MTG" export GAME_ID + python3 mcimport.py "$IN" "${HOME}/.minetest/worlds/$OUT" -if [ $? == 0 ]; then - if ! zenity --width=800 --question --title="Download required mods?" --text="The world was succesfully converted. Do you want me to download and install all the required mods now? This should be done for each converted world."; then - exit 0 + if [ $? == 0 ]; then + if ! zenity --width=800 --question --title="Download required mods?" --text="The world was succesfully converted. Do you want me to download and install all the required mods now? This should be done for each converted world."; then + exit 0 + fi + cd "${HOME}/.minetest/worlds/$OUT" + ( + bash get-mods.sh + echo "=====================" + echo "Finished! You can now close this window!" + ) | zenity --text-info --width=800 --height=600 --title='Downloading required mods.' --text='Downloading...' + zenity --width=800 --info --text "Conversion finished! Your world should now be playable in Minetest." + else + zenity --info --width=800 --text "Conversion didn't finish normally, the resulting world may not be playable." + exit + fi + else zenity --info --width=800 --title="Conversion in progress" --text="The conversion is now running and may take a *very* long time to finish. Do not be alarmed by output lines that show \"Unknown Minecraft Block\" messages, this is normal and can usually be ignored without issues. You can safely close this window." & + + GAME_ID="MCL2" export GAME_ID + python3 mcimport.py "$IN" "${HOME}/.minetest/worlds/$OUT" + + if [ $? == 0 ]; then + zenity --width=800 --info --text "Conversion finished! Your world should now be playable in Minetest." + else + zenity --info --width=800 --text "Conversion didn't finish normally, the resulting world may not be playable." + exit + fi fi - cd "${HOME}/.minetest/worlds/$OUT" - ( - bash get-mods.sh - echo "=====================" - echo "Finished! You can now close this window!" - ) | zenity --text-info --width=800 --height=600 --title='Downloading required mods.' --text='Downloading...' -else - zenity --info --width=800 --text "Conversion didn't finish normally, the resulting world may not be playable." - exit 1 fi -zenity --width=800 --info --text "Conversion finished! Your world should now be playable in Minetest." diff --git a/mcl2_map_content.txt b/mcl2_map_content.txt new file mode 100644 index 0000000..67f6f59 --- /dev/null +++ b/mcl2_map_content.txt @@ -0,0 +1,1656 @@ +// For documentation see - Map_Content_Documentation.txt +//===================================================================================== + + + +1 0 mcl_core:stone +1 1 mcl_core:granite +1 2 mcl_core:granite_smooth +1 3 mcl_core:diorite +1 4 mcl_core:diorite_smooth +1 5 mcl_core:andesite +1 6 mcl_core:andesite_smooth + +2 mcl_core:dirt_with_grass +3 0 mcl_core:dirt +3 1 mcl_core:coarse_dirt +3 2 mcl_core:podzol +4 mcl_core:cobble + + +5 0 mcl_core:wood +5 1 mcl_core:sprucewood +5 2 mcl_core:birchwood +5 3 mcl_core:junglewood +5 4 mcl_core:acaciawood +5 5 mcl_core:darkwood + +6 0 mcl_core:sapling +6 1 mcl_core:sprucesapling +6 2 mcl_core:birchsapling +6 3 mcl_core:junglesapling +6 4 mcl_core:acaciasapling +6 5 mcl_core:darksapling +6 8 mcl_core:sapling +6 9 mcl_core:sprucesapling +6 10 mcl_core:birchsapling +6 11 mcl_core:junglesapling +6 12 mcl_core:acaciasapling +6 13 mcl_core:darksapling + + +7 mcl_core:bedrock + +// blocks 8, 9, 10 and 11 (water and lava) are handled in code. +8 mcl_core:water_flowing +9 mcl_core:water_source +10 mcl_core:lava_flowing +11 mcl_core:lava_source + +12 0 mcl_core:sand +12 1 mcl_core:redsand +13 mcl_core:gravel +14 mcl_core:stone_with_gold +15 mcl_core:stone_with_iron +16 mcl_core:stone_with_coal + + +17 0 mcl_core:tree 0 +17 1 mcl_core:sprucetree 0 +17 2 mcl_core:birchtree 0 +17 3 mcl_core:jungletree 0 +17 4 mcl_core:tree 18 +17 5 mcl_core:sprucetree 18 +17 6 mcl_core:birchtree 18 +17 7 mcl_core:jungletree 18 +17 8 mcl_core:tree 9 +17 9 mcl_core:sprucetree 9 +17 10 mcl_core:birchtree 9 +17 11 mcl_core:jungletree 9 +//bark only versions +17 12 mcl_core:tree_bark +17 13 mcl_core:sprucetree_bark +17 14 mcl_core:birchtree_bark +17 15 mcl_core:jungletree_bark + +18 0,8 mcl_core:leaves +18 4,12 mcl_core:leaves 1 +18 1,9 mcl_core:spruceleaves +18 5,13 mcl_core:spruceleaves 1 +18 2,10 mcl_core:birchleaves +18 6,14 mcl_core:birchleaves 1 +18 3,11 mcl_core:jungleleaves +18 7,15 mcl_core:jungleleaves 1 + +161 0,8 mcl_core:acacialeaves +161 4,12 mcl_core:acacialeaves 1 +161 1,9 mcl_core:darkleaves +161 5,13 mcl_core:darkleaves 1 +162 0 mcl_core:acaciatree 0 +162 1 mcl_core:darktree 0 +162 4 mcl_core:acaciatree 18 +162 5 mcl_core:darktree 18 +162 8 mcl_core:acaciatree 9 +162 9 mcl_core:darktree 9 +//bark only versions +162 12 mcl_core:acaciatree_bark +162 13 mcl_core:darktree_bark + + + +19 0 mcl_sponges:sponge +19 1 mcl_sponges:sponge_wet +20 mcl_core:glass +21 mcl_core:stone_with_lapis +22 mcl_core:lapisblock + +23 0 mcl_dispensers:dispenser_down +23 1 mcl_dispensers:dispenser_up +23 2 mcl_dispensers:dispenser 2 +23 3 mcl_dispensers:dispenser 0 +23 4 mcl_dispensers:dispenser 1 +23 5 mcl_dispensers:dispenser 3 +23 8 mcl_dispensers:dispenser_down +23 9 mcl_dispensers:dispenser_up +23 10 mcl_dispensers:dispenser 2 +23 11 mcl_dispensers:dispenser 0 +23 12 mcl_dispensers:dispenser 1 +23 13 mcl_dispensers:dispenser 3 + +24 0 mcl_core:sandstone +24 1 mcl_core:sandstonecarved +24 2 mcl_core:sandstonesmooth + +25 mesecons_noteblock:noteblock // FIXME: get pitch from entity data + +26 0 mcl_beds:bed_red_bottom 2 +26 1 mcl_beds:bed_red_bottom 3 +26 2 mcl_beds:bed_red_bottom 0 +26 3 mcl_beds:bed_red_bottom 1 +26 8 mcl_beds:bed_red_top 2 +26 9 mcl_beds:bed_red_top 3 +26 10 mcl_beds:bed_red_top 0 +26 11 mcl_beds:bed_red_top 1 + +// Powered rail +27 0 mcl_minecarts:golden_rail +27 1 mcl_minecarts:golden_rail +27 2 mcl_minecarts:golden_rail +27 3 mcl_minecarts:golden_rail +27 4 mcl_minecarts:golden_rail +27 5 mcl_minecarts:golden_rail +27 8 mcl_minecarts:golden_rail_on +27 9 mcl_minecarts:golden_rail_on +27 10 mcl_minecarts:golden_rail_on +27 11 mcl_minecarts:golden_rail_on +27 12 mcl_minecarts:golden_rail_on +27 13 mcl_minecarts:golden_rail_on + +// Detector rail +28 0 mcl_minecarts:detector_rail +28 1 mcl_minecarts:detector_rail +28 2 mcl_minecarts:detector_rail +28 3 mcl_minecarts:detector_rail +28 4 mcl_minecarts:detector_rail +28 5 mcl_minecarts:detector_rail +28 8 mcl_minecarts:detector_rail_on +28 9 mcl_minecarts:detector_rail_on +28 10 mcl_minecarts:detector_rail_on +28 11 mcl_minecarts:detector_rail_on +28 12 mcl_minecarts:detector_rail_on +28 13 mcl_minecarts:detector_rail_on + +//sticky pistons +29 0 mesecons_pistons:piston_down_sticky_off +29 1 mesecons_pistons:piston_up_sticky_off +29 2 mesecons_pistons:piston_sticky_off 2 +29 3 mesecons_pistons:piston_sticky_off 0 +29 4 mesecons_pistons:piston_sticky_off 1 +29 5 mesecons_pistons:piston_sticky_off 3 +29 8 mesecons_pistons:piston_down_sticky_on +29 9 mesecons_pistons:piston_up_sticky_on +29 10 mesecons_pistons:piston_sticky_on 2 +29 11 mesecons_pistons:piston_sticky_on 0 +29 12 mesecons_pistons:piston_sticky_on 1 +29 13 mesecons_pistons:piston_sticky_on 3 + +30 mcl_core:cobweb + +31 0 mcl_core:deadbush +31 1 mcl_flowers:tallgrass // code randomly changes height +31 2 mcl_flowers:fern + +32 mcl_core:deadbush + +//normal pistons +33 0 mesecons_pistons:piston_down_normal_off +33 1 mesecons_pistons:piston_up_normal_off +33 2 mesecons_pistons:piston_normal_off 2 +33 3 mesecons_pistons:piston_normal_off 0 +33 4 mesecons_pistons:piston_normal_off 1 +33 5 mesecons_pistons:piston_normal_off 3 +33 8 mesecons_pistons:piston_down_normal_on +33 9 mesecons_pistons:piston_up_normal_on +33 10 mesecons_pistons:piston_normal_on 2 +33 11 mesecons_pistons:piston_normal_on 0 +33 12 mesecons_pistons:piston_normal_on 1 +33 13 mesecons_pistons:piston_normal_on 3 + +//piston head +34 0 mesecons_pistons:piston_down_pusher_normal +34 1 mesecons_pistons:piston_up_pusher_normal +34 2 mesecons_pistons:piston_pusher_normal 2 +34 3 mesecons_pistons:piston_pusher_normal 0 +34 4 mesecons_pistons:piston_pusher_normal 1 +34 5 mesecons_pistons:piston_pusher_normal 3 +34 8 mesecons_pistons:piston_down_pusher_sticky +34 9 mesecons_pistons:piston_up_pusher_sticky +34 10 mesecons_pistons:piston_pusher_sticky 2 +34 11 mesecons_pistons:piston_pusher_sticky 0 +34 12 mesecons_pistons:piston_pusher_sticky 1 +34 13 mesecons_pistons:piston_pusher_sticky 3 + +35 0 mcl_wool:white +35 1 mcl_wool:orange +35 2 mcl_wool:magenta +35 3 mcl_wool:light_blue +35 4 mcl_wool:yellow +35 5 mcl_wool:lime +35 6 mcl_wool:pink +35 7 mcl_wool:grey +35 8 mcl_wool:silver +35 9 mcl_wool:cyan +35 10 mcl_wool:purple +35 11 mcl_wool:blue +35 12 mcl_wool:brown +35 13 mcl_wool:green +35 14 mcl_wool:red +35 15 mcl_wool:black + +37 mcl_flowers:dandelion +38 0 mcl_flowers:poppy +38 1 mcl_flowers:blue_orchid +38 2 mcl_flowers:allium +38 3 mcl_flowers:azure_bluet +38 4 mcl_flowers:tulip_red +38 5 mcl_flowers:tulip_orange +38 6 mcl_flowers:tulip_white +38 7 mcl_flowers:tulip_pink +38 8 mcl_flowers:oxeye_daisy + +39 mcl_mushrooms:mushroom_brown +40 mcl_mushrooms:mushroom_red + +41 mcl_core:goldblock +42 mcl_core:ironblock + +43 0 mcl_stairs:slab_stone_double // Double slabs +43 1 mcl_core:sandstone +43 2 mcl_core:wood +43 3 mcl_core:cobble +43 4 mcl_core:brick_block +43 5 mcl_core:stonebrick +43 6 mcl_nether:nether_brick +43 7 mcl_nether:quartz_block +43 8 mcl_core:stone_smooth +43 9 mcl_core:sandstone +43 10 mcl_nether:quartz_chiseled + + +44 0 mcl_stairs:slab_stone +44 8 mcl_stairs:slab_stone_top 22 +44 1 mcl_stairs:slab_sandstone +44 9 mcl_stairs:slab_sandstone_top 22 +44 2 mcl_stairs:slab_wood +44 10 mcl_stairs:slab_wood_top 22 +44 3 mcl_stairs:slab_cobble +44 11 mcl_stairs:slab_cobble_top 22 +44 4 mcl_stairs:slab_brick_block +44 12 mcl_stairs:slab_brick_block_top 22 +44 5 mcl_stairs:slab_stonebrick +44 13 mcl_stairs:slab_stonebrick_top 22 +44 6 mcl_stairs:slab_nether_brick +44 14 mcl_stairs:slab_nether_brick_top 22 +44 7 mcl_stairs:slab_quartzblock +44 15 mcl_stairs:slab_quartzblock_top 22 + + +45 mcl_core:brick_block + +46 mcl_tnt:tnt + +47 mcl_books:bookshelf + +48 mcl_core:mossycobble + +49 mcl_core:obsidian + +50 0 mcl_torches:torch 1 +50 1 mcl_torches:torch_wall 3 +50 2 mcl_torches:torch_wall 2 +50 3 mcl_torches:torch_wall 4 +50 4 mcl_torches:torch_wall 5 +50 5 mcl_torches:torch 1 + +51 mcl_fire:fire + +52 0 mcl_mobspawners:spawner + +53 0 mcl_stairs:stair_wood 1 +53 1 mcl_stairs:stair_wood 3 +53 2 mcl_stairs:stair_wood 2 +53 3 mcl_stairs:stair_wood 0 +53 4 mcl_stairs:stair_wood 23 +53 5 mcl_stairs:stair_wood 21 +53 6 mcl_stairs:stair_wood 22 +53 7 mcl_stairs:stair_wood 20 + +54 0 mcl_chests:chest 2 // map to default orientation == 2, TODO: contents +54 2 mcl_chests:chest 2 //N +54 3 mcl_chests:chest 0 //S +54 4 mcl_chests:chest 1 //W +54 5 mcl_chests:chest 3 //E + +55 0 mesecons:wire_00000000_off // FIXME: manually fit wires based on neighbors +55 1 mesecons:wire_00000000_on +55 2 mesecons:wire_00000000_on +55 3 mesecons:wire_00000000_on +55 4 mesecons:wire_00000000_on +55 5 mesecons:wire_00000000_on +55 6 mesecons:wire_00000000_on +55 7 mesecons:wire_00000000_on +55 8 mesecons:wire_00000000_on +55 9 mesecons:wire_00000000_on +55 10 mesecons:wire_00000000_on +55 11 mesecons:wire_00000000_on +55 12 mesecons:wire_00000000_on +55 13 mesecons:wire_00000000_on +55 14 mesecons:wire_00000000_on +55 15 mesecons:wire_00000000_on + +56 mcl_core:stone_with_diamond +57 mcl_core:diamondblock + +58 mcl_crafting_table:crafting_table + +59 0 mcl_farming:wheat_1 +59 1 mcl_farming:wheat_2 +59 2 mcl_farming:wheat_3 +59 3 mcl_farming:wheat_4 +59 4 mcl_farming:wheat_5 +59 5 mcl_farming:wheat_6 +59 6 mcl_farming:wheat_7 +59 7 mcl_farming:wheat + +60 0 mcl_farming:soil +60 1 mcl_farming:soil_wet +60 2 mcl_farming:soil_wet +60 3 mcl_farming:soil_wet +60 4 mcl_farming:soil_wet +60 5 mcl_farming:soil_wet +60 6 mcl_farming:soil_wet +60 7 mcl_farming:soil_wet + +61 2 mcl_furnaces:furnace 2 // TODO: contents +61 3 mcl_furnaces:furnace 0 +61 4 mcl_furnaces:furnace 1 +61 5 mcl_furnaces:furnace 3 +62 2 mcl_furnaces:furnace_active 2 +62 3 mcl_furnaces:furnace_active 0 +62 4 mcl_furnaces:furnace_active 1 +62 5 mcl_furnaces:furnace_active 3 + +63 0 mcl_signs:standing_sign // Signs mostly fixed now. +63 1 mcl_signs:standing_sign22_5 //Thanks to the extra angles included in 'mcl_signs'. +63 2 mcl_signs:standing_sign45 +63 3 mcl_signs:standing_sign67_5 +63 4 mcl_signs:standing_sign 1 +63 5 mcl_signs:standing_sign22_5 1 +63 6 mcl_signs:standing_sign45 3 +63 7 mcl_signs:standing_sign67_5 1 +63 8 mcl_signs:standing_sign +63 9 mcl_signs:standing_sign22_5 +63 10 mcl_signs:standing_sign45 +63 11 mcl_signs:standing_sign67_5 +63 12 mcl_signs:standing_sign 3 +63 13 mcl_signs:standing_sign22_5 3 +63 14 mcl_signs:standing_sign45 3 +63 15 mcl_signs:standing_sign67_5 3 + +64 air // door parts get fixed up in code + +65 2 mcl_core:ladder 5 +65 3 mcl_core:ladder 4 +65 4 mcl_core:ladder 2 +65 5 mcl_core:ladder 3 + +66 mcl_minecarts:rail + + +67 0 mcl_stairs:stair_cobble 1 +67 1 mcl_stairs:stair_cobble 3 +67 2 mcl_stairs:stair_cobble 2 +67 3 mcl_stairs:stair_cobble 0 +67 4 mcl_stairs:stair_cobble 23 +67 5 mcl_stairs:stair_cobble 21 +67 6 mcl_stairs:stair_cobble 22 +67 7 mcl_stairs:stair_cobble 20 + +68 2 mcl_signs:wall_sign 5 +68 3 mcl_signs:wall_sign 4 +68 4 mcl_signs:wall_sign 2 +68 5 mcl_signs:wall_sign 3 + +69 0 mesecons_walllever:wall_lever_off 15 +69 1 mesecons_walllever:wall_lever_off 3 +69 2 mesecons_walllever:wall_lever_off 1 +69 3 mesecons_walllever:wall_lever_off 0 +69 4 mesecons_walllever:wall_lever_off 2 +69 5 mesecons_walllever:wall_lever_off 4 +69 6 mesecons_walllever:wall_lever_off 13 +69 7 mesecons_walllever:wall_lever_off 6 +69 8 mesecons_walllever:wall_lever_on 15 +69 9 mesecons_walllever:wall_lever_on 3 +69 10 mesecons_walllever:wall_lever_on 1 +69 11 mesecons_walllever:wall_lever_on 0 +69 12 mesecons_walllever:wall_lever_on 2 +69 13 mesecons_walllever:wall_lever_on 4 +69 14 mesecons_walllever:wall_lever_on 13 +69 15 mesecons_walllever:wall_lever_on 6 + +70 mesecons_pressureplates:pressure_plate_stone_off + +71 air // door parts get fixed up in code + +72 mesecons_pressureplates:pressure_plate_wood_off + +73 mcl_core:stone_with_redstone // Redstone ore +74 mcl_core:stone_with_redstone_lit + +75 1 mesecons_torch:mesecon_torch_off 3 +75 2 mesecons_torch:mesecon_torch_off 2 +75 3 mesecons_torch:mesecon_torch_off 4 +75 4 mesecons_torch:mesecon_torch_off 5 +75 5 mesecons_torch:mesecon_torch_off 1 + +76 1 mesecons_torch:mesecon_torch_on 3 +76 2 mesecons_torch:mesecon_torch_on 2 +76 3 mesecons_torch:mesecon_torch_on 4 +76 4 mesecons_torch:mesecon_torch_on 5 +76 5 mesecons_torch:mesecon_torch_on 1 + +77 0 mesecons_button:button_stone_off 0 +77 1 mesecons_button:button_stone_off 3 +77 2 mesecons_button:button_stone_off 2 +77 3 mesecons_button:button_stone_off 4 +77 4 mesecons_button:button_stone_off 5 +77 5 mesecons_button:button_stone_off 1 + + +78 0 mcl_core:snow +78 1 mcl_core:snow_2 +78 2 mcl_core:snow_3 +78 3 mcl_core:snow_4 +78 4 mcl_core:snow_5 +78 5 mcl_core:snow_6 +78 6 mcl_core:snow_7 +78 7 mcl_core:snow_8 + + +79 mcl_core:ice +80 mcl_core:snowblock +81 mcl_core:cactus +82 mcl_core:clay +83 mcl_core:reeds +84 mcl_jukebox:jukebox +85 mcl_fences:fence + +86 0 mcl_farming:pumpkin_face 0 +86 1 mcl_farming:pumpkin_face 1 +86 2 mcl_farming:pumpkin_face 2 +86 3 mcl_farming:pumpkin_face 3 + + +87 mcl_nether:netherrack +88 mcl_nether:soul_sand +89 mcl_nether:glowstone +//Nether Portal blockstate orientation fix. +90 0 mcl_portals:portal 12 +90 1 mcl_portals:portal 12 +90 2 mcl_portals:portal 1 + + +91 0 mcl_farming:pumpkin_face_light 0 +91 1 mcl_farming:pumpkin_face_light 1 +91 2 mcl_farming:pumpkin_face_light 2 +91 3 mcl_farming:pumpkin_face_light 3 +91 4 mcl_farming:pumpkin_face_light + +92 0 mcl_cake:cake +92 1 mcl_cake:cake_6 +92 2 mcl_cake:cake_5 +92 3 mcl_cake:cake_4 +92 4 mcl_cake:cake_3 +92 5 mcl_cake:cake_2 +92 6 mcl_cake:cake_1 + +93 0 mesecons_delayer:delayer_off_1 0 +93 1 mesecons_delayer:delayer_off_1 1 +93 2 mesecons_delayer:delayer_off_1 2 +93 3 mesecons_delayer:delayer_off_1 3 +93 4 mesecons_delayer:delayer_off_2 0 +93 5 mesecons_delayer:delayer_off_2 1 +93 6 mesecons_delayer:delayer_off_2 2 +93 7 mesecons_delayer:delayer_off_2 3 +93 8 mesecons_delayer:delayer_off_3 0 +93 9 mesecons_delayer:delayer_off_3 1 +93 10 mesecons_delayer:delayer_off_3 2 +93 11 mesecons_delayer:delayer_off_3 3 +93 12 mesecons_delayer:delayer_off_4 0 +93 13 mesecons_delayer:delayer_off_4 1 +93 14 mesecons_delayer:delayer_off_4 2 +93 15 mesecons_delayer:delayer_off_4 3 + +94 0 mesecons_delayer:delayer_on_1 0 +94 1 mesecons_delayer:delayer_on_1 1 +94 2 mesecons_delayer:delayer_on_1 2 +94 3 mesecons_delayer:delayer_on_1 3 +94 4 mesecons_delayer:delayer_on_2 0 +94 5 mesecons_delayer:delayer_on_2 1 +94 6 mesecons_delayer:delayer_on_2 2 +94 7 mesecons_delayer:delayer_on_2 3 +94 8 mesecons_delayer:delayer_on_3 0 +94 9 mesecons_delayer:delayer_on_3 1 +94 10 mesecons_delayer:delayer_on_3 2 +94 11 mesecons_delayer:delayer_on_3 3 +94 12 mesecons_delayer:delayer_on_4 0 +94 13 mesecons_delayer:delayer_on_4 1 +94 14 mesecons_delayer:delayer_on_4 2 +94 15 mesecons_delayer:delayer_on_4 3 + +95 0 mcl_core:glass_white +95 1 mcl_core:glass_orange +95 2 mcl_core:glass_magenta +95 3 mcl_core:glass_light_blue +95 4 mcl_core:glass_yellow +95 5 mcl_core:glass_lime +95 6 mcl_core:glass_pink +95 7 mcl_core:glass_gray +95 8 mcl_core:glass_silver +95 9 mcl_core:glass_cyan +95 10 mcl_core:glass_purple +95 11 mcl_core:glass_blue +95 12 mcl_core:glass_brown +95 13 mcl_core:glass_green +95 14 mcl_core:glass_red +95 15 mcl_core:glass_black + + +96 0 mcl_doors:trapdoor 2 +96 1 mcl_doors:trapdoor 0 +96 2 mcl_doors:trapdoor 1 +96 3 mcl_doors:trapdoor 3 +96 4 mcl_doors:trapdoor_open 2 +96 5 mcl_doors:trapdoor_open 0 +96 6 mcl_doors:trapdoor_open 1 +96 7 mcl_doors:trapdoor_open 3 +96 8 mcl_doors:trapdoor 22 +96 9 mcl_doors:trapdoor 20 +96 10 mcl_doors:trapdoor 23 +96 11 mcl_doors:trapdoor 21 +96 12 mcl_doors:trapdoor_open 22 +96 13 mcl_doors:trapdoor_open 20 +96 14 mcl_doors:trapdoor_open 23 +96 15 mcl_doors:trapdoor_open 21 + +97 0 mcl_monster_eggs:monster_egg_stone // Silverfish +97 1 mcl_monster_eggs:monster_egg_cobble +97 2 mcl_monster_eggs:monster_egg_stonebrick +97 3 mcl_monster_eggs:monster_egg_stonebrickmossy +97 4 mcl_monster_eggs:monster_egg_stonebrickcracked +97 5 mcl_monster_eggs:monster_egg_stonebrickcarved + +98 0 mcl_core:stonebrick +98 1 mcl_core:stonebrickmossy +98 2 mcl_core:stonebrickcracked +98 3 mcl_core:stonebrickcarved + + +99 0 mcl_mushrooms:brown_mushroom_block_cap_000000 +99 1 mcl_mushrooms:brown_mushroom_block_cap_100110 +99 2 mcl_mushrooms:brown_mushroom_block_cap_100010 +99 3 mcl_mushrooms:brown_mushroom_block_cap_101010 +99 4 mcl_mushrooms:brown_mushroom_block_cap_100100 +99 5 mcl_mushrooms:brown_mushroom_block_cap_100000 +99 6 mcl_mushrooms:brown_mushroom_block_cap_101000 +99 7 mcl_mushrooms:brown_mushroom_block_cap_100101 +99 8 mcl_mushrooms:brown_mushroom_block_cap_100001 +99 9 mcl_mushrooms:brown_mushroom_block_cap_101001 +99 10 mcl_mushrooms:brown_mushroom_block_stem +99 14 mcl_mushrooms:brown_mushroom_block_cap_111111 +99 15 mcl_mushrooms:brown_mushroom_block_stem_full +100 0 mcl_mushrooms:red_mushroom_block_cap_000000 +100 1 mcl_mushrooms:red_mushroom_block_cap_100110 +100 2 mcl_mushrooms:red_mushroom_block_cap_100010 +100 3 mcl_mushrooms:red_mushroom_block_cap_101010 +100 4 mcl_mushrooms:red_mushroom_block_cap_100100 +100 5 mcl_mushrooms:red_mushroom_block_cap_100000 +100 6 mcl_mushrooms:red_mushroom_block_cap_101000 +100 7 mcl_mushrooms:red_mushroom_block_cap_100101 +100 8 mcl_mushrooms:red_mushroom_block_cap_100001 +100 9 mcl_mushrooms:red_mushroom_block_cap_101001 +100 10 mcl_mushrooms:red_mushroom_block_stem +100 14 mcl_mushrooms:red_mushroom_block_cap_111111 +100 15 mcl_mushrooms:red_mushroom_block_stem_full + + +101 xpanes:bar // This seems to fix rotation issues. +102 xpanes:pane_natural // Mostly fixed, as it fixes rotation issues. But, requires adding some groups to the "connects_to" list in xpanes. + +103 mcl_farming:melon // rotates randomly + +104 0 mcl_farming:pumpkin_1 +104 1 mcl_farming:pumpkin_2 +104 2 mcl_farming:pumpkin_3 +104 3 mcl_farming:pumpkin_4 +104 4 mcl_farming:pumpkin_5 +104 5 mcl_farming:pumpkin_6 +104 6 mcl_farming:pumpkin_7 +104 7 mcl_farming:pumpkintige_unconnect + +105 0 mcl_farming:melontige_1 +105 1 mcl_farming:melontige_2 +105 2 mcl_farming:melontige_3 +105 3 mcl_farming:melontige_4 +105 4 mcl_farming:melontige_5 +105 5 mcl_farming:melontige_6 +105 6 mcl_farming:melontige_7 +105 7 mcl_farming:melontige_unconnect + +106 1 mcl_core:vine 5 //Ignore errors about other 106 #'s. +106 2 mcl_core:vine 3 //The bits are toggleable; meaning you don't need both. +106 4 mcl_core:vine 4 //These 4 will cover all bases(N-4,E-5,S-2,W-3) +106 8 mcl_core:vine 2 + +107 0 mcl_fences:fence_gate 2 +107 1 mcl_fences:fence_gate 3 +107 2 mcl_fences:fence_gate 0 +107 3 mcl_fences:fence_gate 1 +107 4 mcl_fences:fence_gate_open 2 +107 5 mcl_fences:fence_gate_open 3 +107 6 mcl_fences:fence_gate_open 0 +107 7 mcl_fences:fence_gate_open 1 + +108 0 mcl_stairs:stair_brick_block 1 +108 1 mcl_stairs:stair_brick_block 3 +108 2 mcl_stairs:stair_brick_block 2 +108 3 mcl_stairs:stair_brick_block 0 +108 4 mcl_stairs:stair_brick_block 23 +108 5 mcl_stairs:stair_brick_block 21 +108 6 mcl_stairs:stair_brick_block 22 +108 7 mcl_stairs:stair_brick_block 20 + +109 0 mcl_stairs:stair_stonebrick 1 +109 1 mcl_stairs:stair_stonebrick 3 +109 2 mcl_stairs:stair_stonebrick 2 +109 3 mcl_stairs:stair_stonebrick 0 +109 4 mcl_stairs:stair_stonebrick 23 +109 5 mcl_stairs:stair_stonebrick 21 +109 6 mcl_stairs:stair_stonebrick 22 +109 7 mcl_stairs:stair_stonebrick 20 + +110 mcl_core:mycelium +111 mcl_flowers:waterlily // rotation done in code randomly + +112 mcl_nether:nether_brick +113 mcl_fences:nether_brick_fence + + +114 0 mcl_stairs:stair_nether_brick 1 +114 1 mcl_stairs:stair_nether_brick 3 +114 2 mcl_stairs:stair_nether_brick 2 +114 3 mcl_stairs:stair_nether_brick 0 +114 4 mcl_stairs:stair_nether_brick 23 +114 5 mcl_stairs:stair_nether_brick 21 +114 6 mcl_stairs:stair_nether_brick 22 +114 7 mcl_stairs:stair_nether_brick 20 + + + +115 0 mcl_nether:nether_wart_0 +115 1 mcl_nether:nether_wart_1 +115 2 mcl_nether:nether_wart_2 +115 3 mcl_nether:nether_wart + +//116 0 enchantment_table +//117 0 brewing stand + +118 0 mcl_cauldrons:cauldron +118 1 mcl_cauldrons:cauldron_1 // 1/3 full +118 2 mcl_cauldrons:cauldron_2 // 2/3 full +118 3 mcl_cauldrons:cauldron_3 // Full + +119 0 mcl_portals:portal_end + +120 0 mcl_portals:end_portal_frame +120 1 mcl_portals:end_portal_frame +120 2 mcl_portals:end_portal_frame +120 3 mcl_portals:end_portal_frame +120 4 mcl_portals:end_portal_frame_eye +120 5 mcl_portals:end_portal_frame_eye +120 6 mcl_portals:end_portal_frame_eye +120 7 mcl_portals:end_portal_frame_eye + +121 0 mcl_end:end_stone +122 0 mcl_end:dragon_egg + + +123 mesecons_lightstone:lightstone_off +124 mesecons_lightstone:lightstone_on + + +125 0 mcl_core:wood +125 1 mcl_core:sprucewood +125 2 mcl_core:birchwood +125 3 mcl_core:junglewood +125 4 mcl_core:acaciawood +125 5 mcl_core:darkwood + +126 0 mcl_stairs:slab_wood +126 8 mcl_stairs:slab_wood_top 22 +126 1 mcl_stairs:slab_sprucewood +126 9 mcl_stairs:slab_sprucewood_top 22 +126 2 mcl_stairs:slab_birchwood +126 10 mcl_stairs:slab_birchwood_top 22 +126 3 mcl_stairs:slab_junglewood +126 11 mcl_stairs:slab_junglewood_top 22 +126 4 mcl_stairs:slab_acaciawood +126 12 mcl_stairs:slab_acaciawood_top 22 +126 5 mcl_stairs:slab_darkwood +126 13 mcl_stairs:slab_darkwood_top 22 + + + +127 0 mcl_cocoas:cocoa_1 2 +127 1 mcl_cocoas:cocoa_1 3 +127 2 mcl_cocoas:cocoa_1 0 +127 3 mcl_cocoas:cocoa_1 1 +127 4 mcl_cocoas:cocoa_2 2 +127 5 mcl_cocoas:cocoa_2 3 +127 6 mcl_cocoas:cocoa_2 0 +127 7 mcl_cocoas:cocoa_2 1 +127 8 mcl_cocoas:cocoa_3 2 +127 9 mcl_cocoas:cocoa_3 3 +127 10 mcl_cocoas:cocoa_3 0 +127 11 mcl_cocoas:cocoa_3 1 + +128 0 mcl_stairs:stair_sandstone 1 +128 1 mcl_stairs:stair_sandstone 3 +128 2 mcl_stairs:stair_sandstone 2 +128 3 mcl_stairs:stair_sandstone 0 +128 4 mcl_stairs:stair_sandstone 23 +128 5 mcl_stairs:stair_sandstone 21 +128 6 mcl_stairs:stair_sandstone 22 +128 7 mcl_stairs:stair_sandstone 20 + +129 mcl_core:stone_with_emerald + +130 2 mcl_chests:ender_chest 2 +130 3 mcl_chests:ender_chest 0 +130 4 mcl_chests:ender_chest 1 +130 5 mcl_chests:ender_chest 3 + +//131 tripwire hook +//132 tripwire + +133 0 mcl_core:emeraldblock + + +134 0 mcl_stairs:stair_sprucewood 1 +134 1 mcl_stairs:stair_sprucewood 3 +134 2 mcl_stairs:stair_sprucewood 2 +134 3 mcl_stairs:stair_sprucewood 0 +134 4 mcl_stairs:stair_sprucewood 23 +134 5 mcl_stairs:stair_sprucewood 21 +134 6 mcl_stairs:stair_sprucewood 22 +134 7 mcl_stairs:stair_sprucewood 20 + +135 0 mcl_stairs:stair_birchwood 1 +135 1 mcl_stairs:stair_birchwood 3 +135 2 mcl_stairs:stair_birchwood 2 +135 3 mcl_stairs:stair_birchwood 0 +135 4 mcl_stairs:stair_birchwood 23 +135 5 mcl_stairs:stair_birchwood 21 +135 6 mcl_stairs:stair_birchwood 22 +135 7 mcl_stairs:stair_birchwood 20 + +136 0 mcl_stairs:stair_junglewood 1 +136 1 mcl_stairs:stair_junglewood 3 +136 2 mcl_stairs:stair_junglewood 2 +136 3 mcl_stairs:stair_junglewood 0 +136 4 mcl_stairs:stair_junglewood 23 +136 5 mcl_stairs:stair_junglewood 21 +136 6 mcl_stairs:stair_junglewood 22 +136 7 mcl_stairs:stair_junglewood 20 + + +137 mesecons_commandblock:commandblock_off // FIXME: formspec + +//138 0 beacon + +139 0 mcl_walls:cobble +139 1 mcl_walls:mossycobble + +140 mcl_flowerpots:flower_pot // code will plant right flower + +141 0 mcl_farming:carrot_1 +141 1 mcl_farming:carrot_2 +141 2 mcl_farming:carrot_3 +141 3 mcl_farming:carrot_4 +141 4 mcl_farming:carrot_5 +141 5 mcl_farming:carrot_6 +141 6 mcl_farming:carrot_7 +141 7 mcl_farming:carrot + +142 0 mcl_farming:potato_1 +142 1 mcl_farming:potato_2 +142 2 mcl_farming:potato_3 +142 3 mcl_farming:potato_4 +142 4 mcl_farming:potato_5 +142 5 mcl_farming:potato_6 +142 6 mcl_farming:potato_7 +142 7 mcl_farming:potato + +143 0 mesecons_button:button_wood_off 0 +143 1 mesecons_button:button_wood_off 3 +143 2 mesecons_button:button_wood_off 2 +143 3 mesecons_button:button_wood_off 4 +143 4 mesecons_button:button_wood_off 5 +143 5 mesecons_button:button_wood_off 1 + +//Todo: entity data to define heads, default to Steve for now. +144 1 mcl_heads:steve +144 2 mcl_heads:steve 2 +144 3 mcl_heads:steve 0 +144 4 mcl_heads:steve 1 +144 5 mcl_heads:steve 3 + +145 0 mcl_anvils:anvil 1 +145 1 mcl_anvils:anvil 2 +145 2 mcl_anvils:anvil 3 +145 3 mcl_anvils:anvil 0 +145 4 mcl_anvils:anvil_damage_1 1 +145 5 mcl_anvils:anvil_damage_1 2 +145 6 mcl_anvils:anvil_damage_1 3 +145 7 mcl_anvils:anvil_damage_1 0 +145 8 mcl_anvils:anvil_damage_2 1 +145 9 mcl_anvils:anvil_damage_2 2 +145 10 mcl_anvils:anvil_damage_2 3 +145 11 mcl_anvils:anvil_damage_2 0 + +146 2 mcl_chests:trapped_chest 2 // Trapped chest +146 3 mcl_chests:trapped_chest 0 +146 4 mcl_chests:trapped_chest 1 +146 5 mcl_chests:trapped_chest 3 + +//147 0 weighted pressure plate (light) +//148 0 weighted pressure plate (heavy) + +149 0 mcl_comparators:comparator_off_comp 0 +149 1 mcl_comparators:comparator_off_comp 1 +149 2 mcl_comparators:comparator_off_comp 2 +149 3 mcl_comparators:comparator_off_comp 3 +149 4 mcl_comparators:comparator_off_sub 0 +149 5 mcl_comparators:comparator_off_sub 1 +149 6 mcl_comparators:comparator_off_sub 2 +149 7 mcl_comparators:comparator_off_sub 3 +149 8 mcl_comparators:comparator_on_comp 0 +149 9 mcl_comparators:comparator_on_comp 1 +149 10 mcl_comparators:comparator_on_comp 2 +149 11 mcl_comparators:comparator_on_comp 3 +149 12 mcl_comparators:comparator_on_sub 0 +149 13 mcl_comparators:comparator_on_sub 1 +149 14 mcl_comparators:comparator_on_sub 2 +149 15 mcl_comparators:comparator_on_sub 3 + +151 0 mesecons_solarpanel:solar_panel_off 1 +151 1 mesecons_solarpanel:solar_panel_on 1 +151 2 mesecons_solarpanel:solar_panel_on 1 +151 3 mesecons_solarpanel:solar_panel_on 1 +151 4 mesecons_solarpanel:solar_panel_on 1 +151 5 mesecons_solarpanel:solar_panel_on 1 +151 6 mesecons_solarpanel:solar_panel_on 1 +151 7 mesecons_solarpanel:solar_panel_on 1 +151 8 mesecons_solarpanel:solar_panel_on 1 +151 9 mesecons_solarpanel:solar_panel_on 1 +151 10 mesecons_solarpanel:solar_panel_on 1 +151 11 mesecons_solarpanel:solar_panel_on 1 +151 12 mesecons_solarpanel:solar_panel_on 1 +151 13 mesecons_solarpanel:solar_panel_on 1 +151 14 mesecons_solarpanel:solar_panel_on 1 +151 15 mesecons_solarpanel:solar_panel_on 1 + +152 mesecons_torch:redstoneblock + +154 0 mcl_hoppers:hopper 0 +154 1 mcl_hoppers:hopper 2 +154 2 mcl_hoppers:hopper 3 +154 3 mcl_hoppers:hopper 4 +154 4 mcl_hoppers:hopper 5 +154 8 mcl_hoppers:hopper 0 + + +153 mcl_nether:quartz_ore +155 0 mcl_nether:quartz_block +155 1 mcl_nether:quartz_chiseled +155 2 mcl_nether:quartz_pillar +155 3 mcl_nether:quartz_pillar 4 // TODO: check that +155 4 mcl_nether:quartz_pillar 8 // TODO: check that + +156 0 mcl_stairs:stair_quartzblock 1 +156 1 mcl_stairs:stair_quartzblock 3 +156 2 mcl_stairs:stair_quartzblock 2 +156 3 mcl_stairs:stair_quartzblock 0 +156 4 mcl_stairs:stair_quartzblock 23 +156 5 mcl_stairs:stair_quartzblock 21 +156 6 mcl_stairs:stair_quartzblock 22 +156 7 mcl_stairs:stair_quartzblock 20 + + +157 0 mcl_minecarts:activator_rail +157 1 mcl_minecarts:activator_rail +157 2 mcl_minecarts:activator_rail +157 3 mcl_minecarts:activator_rail +157 4 mcl_minecarts:activator_rail +157 5 mcl_minecarts:activator_rail +157 8 mcl_minecarts:activator_rail_on +157 9 mcl_minecarts:activator_rail_on +157 10 mcl_minecarts:activator_rail_on +157 11 mcl_minecarts:activator_rail_on +157 12 mcl_minecarts:activator_rail_on +157 13 mcl_minecarts:activator_rail_on + + +158 0 mcl_droppers:dropper_down +158 1 mcl_droppers:dropper_up +158 2 mcl_droppers:dropper 2 +158 3 mcl_droppers:dropper 0 +158 4 mcl_droppers:dropper 1 +158 5 mcl_droppers:dropper 3 +158 8 mcl_droppers:dropper_down +158 9 mcl_droppers:dropper_up +158 10 mcl_droppers:dropper 2 +158 11 mcl_droppers:dropper 0 +158 12 mcl_droppers:dropper 1 +158 13 mcl_droppers:dropper 3 + +159 0 mcl_colorblocks:hardened_clay_white +159 1 mcl_colorblocks:hardened_clay_orange +159 2 mcl_colorblocks:hardened_clay_magenta +159 3 mcl_colorblocks:hardened_clay_light_blue +159 4 mcl_colorblocks:hardened_clay_yellow +159 5 mcl_colorblocks:hardened_clay_lime +159 6 mcl_colorblocks:hardened_clay_pink +159 7 mcl_colorblocks:hardened_clay_grey +159 8 mcl_colorblocks:hardened_clay_silver +159 9 mcl_colorblocks:hardened_clay_cyan +159 10 mcl_colorblocks:hardened_clay_purple +159 11 mcl_colorblocks:hardened_clay_blue +159 12 mcl_colorblocks:hardened_clay_brown +159 13 mcl_colorblocks:hardened_clay_green +159 14 mcl_colorblocks:hardened_clay_red +159 15 mcl_colorblocks:hardened_clay_black + +160 0 xpanes:pane_white_flat +160 1 xpanes:pane_orange_flat +160 2 xpanes:pane_magenta_flat +160 3 xpanes:pane_light_blue_flat +160 4 xpanes:pane_yellow_flat +160 5 xpanes:pane_lime_flat +160 6 xpanes:pane_pink_flat +160 7 xpanes:pane_gray_flat +160 8 xpanes:pane_silver_flat +160 9 xpanes:pane_cyan_flat +160 10 xpanes:pane_purple_flat +160 11 xpanes:pane_blue_flat +160 12 xpanes:pane_brown_flat +160 13 xpanes:pane_green_flat +160 14 xpanes:pane_red_flat +160 15 xpanes:pane_black_flat + + +161 0 mcl_core:acacialeaves +161 1 mcl_core:darkleaves +162 0 mcl_core:acaciatree +162 1 mcl_core:darktree + +163 0 mcl_stairs:stair_acaciawood 1 +163 1 mcl_stairs:stair_acaciawood 3 +163 2 mcl_stairs:stair_acaciawood 2 +163 3 mcl_stairs:stair_acaciawood 0 +163 4 mcl_stairs:stair_acaciawood 23 +163 5 mcl_stairs:stair_acaciawood 21 +163 6 mcl_stairs:stair_acaciawood 22 +163 7 mcl_stairs:stair_acaciawood 20 + +164 0 mcl_stairs:stair_darkwood 1 +164 1 mcl_stairs:stair_darkwood 3 +164 2 mcl_stairs:stair_darkwood 2 +164 3 mcl_stairs:stair_darkwood 0 +164 4 mcl_stairs:stair_darkwood 23 +164 5 mcl_stairs:stair_darkwood 21 +164 6 mcl_stairs:stair_darkwood 22 +164 7 mcl_stairs:stair_darkwood 20 + + + +165 0 mcl_core:slimeblock +166 0 mcl_core:barrier + +167 0 mcl_doors:iron_trapdoor 2 +167 1 mcl_doors:iron_trapdoor 0 +167 2 mcl_doors:iron_trapdoor 1 +167 3 mcl_doors:iron_trapdoor 3 +167 4 mcl_doors:iron_trapdoor_open 2 +167 5 mcl_doors:iron_trapdoor_open 0 +167 6 mcl_doors:iron_trapdoor_open 1 +167 7 mcl_doors:iron_trapdoor_open 3 +167 8 mcl_doors:iron_trapdoor 22 +167 9 mcl_doors:iron_trapdoor 20 +167 10 mcl_doors:iron_trapdoor 23 +167 11 mcl_doors:iron_trapdoor 21 +167 12 mcl_doors:iron_trapdoor_open 22 +167 13 mcl_doors:iron_trapdoor_open 20 +167 14 mcl_doors:iron_trapdoor_open 23 +167 15 mcl_doors:iron_trapdoor_open 21 + +168 0 mcl_ocean:prismarine +168 1 mcl_ocean:prismarine_brick +168 2 mcl_ocean:prismarine_dark +169 0 mcl_ocean:sea_lantern + +//HayBlock orientation fix using blockstate data. +170 0 mcl_farming:hay_block +170 4 mcl_farming:hay_block 12 +170 8 mcl_farming:hay_block 6 + +171 0 mcl_wool:white_carpet +171 1 mcl_wool:orange_carpet +171 2 mcl_wool:magenta_carpet +171 3 mcl_wool:blue_carpet +171 4 mcl_wool:yellow_carpet +171 5 mcl_wool:lime_carpet +171 6 mcl_wool:pink_carpet +171 7 mcl_wool:grey_carpet +171 8 mcl_wool:silver_carpet +171 9 mcl_wool:cyan_carpet +171 10 mcl_wool:purple_carpet +171 11 mcl_wool:blue_carpet +171 12 mcl_wool:brown_carpet +171 13 mcl_wool:green_carpet +171 14 mcl_wool:red_carpet +171 15 mcl_wool:black_carpet + + +172 0 mcl_colorblocks:hardened_clay +173 mcl_core:coalblock +174 mcl_core:packed_ice + +175 0 mcl_flowers:sunflower +175 1 mcl_flowers:lilac +175 2 mcl_flowers:double_grass +175 3 mcl_flowers:double_fern +175 4 mcl_flowers:rose_bush +175 5 mcl_flowers:peony +//Bug in minecraft maps all top halves to "175 10"; fixed in MCL2 with an LBM. +//175 8 mcl_flowers:sunflower_top +//175 9 mcl_flowers:lilac_top +//175 10 mcl_flowers:double_grass_top +//175 11 mcl_flowers:double_fern_top +//175 12 mcl_flowers:rose_bush_top +//175 13 mcl_flowers:peony_top + + +//todo:properly map banners. +176 mcl_banners:standing_banner +177 2 mcl_banners:hanging_banner 5 +177 3 mcl_banners:hanging_banner 4 +177 4 mcl_banners:hanging_banner 2 +177 5 mcl_banners:hanging_banner 3 + + +178 0 mesecons_solarpanel:solar_panel_inverted_off 1 +178 1 mesecons_solarpanel:solar_panel_inverted_on 1 +178 2 mesecons_solarpanel:solar_panel_inverted_on 1 +178 3 mesecons_solarpanel:solar_panel_inverted_on 1 +178 4 mesecons_solarpanel:solar_panel_inverted_on 1 +178 5 mesecons_solarpanel:solar_panel_inverted_on 1 +178 6 mesecons_solarpanel:solar_panel_inverted_on 1 +178 7 mesecons_solarpanel:solar_panel_inverted_on 1 +178 8 mesecons_solarpanel:solar_panel_inverted_on 1 +178 9 mesecons_solarpanel:solar_panel_inverted_on 1 +178 10 mesecons_solarpanel:solar_panel_inverted_on 1 +178 11 mesecons_solarpanel:solar_panel_inverted_on 1 +178 12 mesecons_solarpanel:solar_panel_inverted_on 1 +178 13 mesecons_solarpanel:solar_panel_inverted_on 1 +178 14 mesecons_solarpanel:solar_panel_inverted_on 1 +178 15 mesecons_solarpanel:solar_panel_inverted_on 1 + +179 0 mcl_core:redsandstone +179 1 mcl_core:redsandstonecarved +179 2 mcl_core:redsandstonesmooth + +180 0 mcl_stairs:stair_redsandstone 1 +180 1 mcl_stairs:stair_redsandstone 3 +180 2 mcl_stairs:stair_redsandstone 2 +180 3 mcl_stairs:stair_redsandstone 0 +180 4 mcl_stairs:stair_redsandstone 23 +180 5 mcl_stairs:stair_redsandstone 21 +180 6 mcl_stairs:stair_redsandstone 22 +180 7 mcl_stairs:stair_redsandstone 20 + +181 mcl_core:redsandstone + +182 8 mcl_stairs:slab_redsandstone_top 22 +182 0 mcl_stairs:slab_redsandstone + + +183 0 mcl_fences:spruce_fence_gate 2 +183 1 mcl_fences:spruce_fence_gate 3 +183 2 mcl_fences:spruce_fence_gate 0 +183 3 mcl_fences:spruce_fence_gate 1 +183 4 mcl_fences:spruce_fence_gate_open 2 +183 5 mcl_fences:spruce_fence_gate_open 3 +183 6 mcl_fences:spruce_fence_gate_open 0 +183 7 mcl_fences:spruce_fence_gate_open 1 + +184 0 mcl_fences:birch_fence_gate 2 +184 1 mcl_fences:birch_fence_gate 3 +184 2 mcl_fences:birch_fence_gate 0 +184 3 mcl_fences:birch_fence_gate 1 +184 4 mcl_fences:birch_fence_gate_open 2 +184 5 mcl_fences:birch_fence_gate_open 3 +184 6 mcl_fences:birch_fence_gate_open 0 +184 7 mcl_fences:birch_fence_gate_open 1 + +185 0 mcl_fences:jungle_fence_gate 2 +185 1 mcl_fences:jungle_fence_gate 3 +185 2 mcl_fences:jungle_fence_gate 0 +185 3 mcl_fences:jungle_fence_gate 1 +185 4 mcl_fences:jungle_fence_gate_open 2 +185 5 mcl_fences:jungle_fence_gate_open 3 +185 6 mcl_fences:jungle_fence_gate_open 0 +185 7 mcl_fences:jungle_fence_gate_open 1 + +186 0 mcl_fences:dark_oak_fence_gate 2 +186 1 mcl_fences:dark_oak_fence_gate 3 +186 2 mcl_fences:dark_oak_fence_gate 0 +186 3 mcl_fences:dark_oak_fence_gate 1 +186 4 mcl_fences:dark_oak_fence_gate_open 2 +186 5 mcl_fences:dark_oak_fence_gate_open 3 +186 6 mcl_fences:dark_oak_fence_gate_open 0 +186 7 mcl_fences:dark_oak_fence_gate_open 1 + +187 0 mcl_fences:acacia_fence_gate 2 +187 1 mcl_fences:acacia_fence_gate 3 +187 2 mcl_fences:acacia_fence_gate 0 +187 3 mcl_fences:acacia_fence_gate 1 +187 4 mcl_fences:acacia_fence_gate_open 2 +187 5 mcl_fences:acacia_fence_gate_open 3 +187 6 mcl_fences:acacia_fence_gate_open 0 +187 7 mcl_fences:acacia_fence_gate_open 1 + + +188 mcl_fences:spruce_fence +189 mcl_fences:birch_fence +190 mcl_fences:jungle_fence +191 mcl_fences:dark_oak_fence +192 mcl_fences:acacia_fence + +193 air // door parts get fixed up in code +194 air // door parts get fixed up in code +195 air // door parts get fixed up in code +196 air // door parts get fixed up in code +197 air // door parts get fixed up in code + +198 0 mcl_end:end_rod 20 //Vector Down +198 1 mcl_end:end_rod 0 //Vector Up +198 2 mcl_end:end_rod 4 //Vector North +198 3 mcl_end:end_rod 8 //Vector South +198 4 mcl_end:end_rod 16 //Vector West +198 5 mcl_end:end_rod 12 //Vector East + +199 0 mcl_end:chorus_plant +200 0 mcl_end:chorus_flower +200 1 mcl_end:chorus_flower +200 2 mcl_end:chorus_flower +200 3 mcl_end:chorus_flower +200 4 mcl_end:chorus_flower +200 5 mcl_end:chorus_flower_dead +201 0 mcl_end:purpur_block +202 0 mcl_end:purpur_pillar +//Pillar on its side N,E,S,W - seem to be hidden values. As MC uses blockstates. +202 4 mcl_end:purpur_pillar 12 +202 8 mcl_end:purpur_pillar 6 + +203 0 mcl_stairs:stair_purpur_block 1 +203 1 mcl_stairs:stair_purpur_block 3 +203 2 mcl_stairs:stair_purpur_block 2 +203 3 mcl_stairs:stair_purpur_block 0 +203 4 mcl_stairs:stair_purpur_block 23 +203 5 mcl_stairs:stair_purpur_block 21 +203 6 mcl_stairs:stair_purpur_block 22 +203 7 mcl_stairs:stair_purpur_block 20 + +204 0 mcl_end:purpur_block +205 0 mcl_stairs:slab_purpur_block +205 8 mcl_stairs:slab_purpur_block_top 22 +206 0 mcl_end:end_bricks +207 0 mcl_farming:beetroot_0 +207 1 mcl_farming:beetroot_1 +207 2 mcl_farming:beetroot_2 +207 3 mcl_farming:beetroot +208 0 mcl_core:grass_path + +//209 end gateway +//210 repeating command block +//211 0,5 chain command block + + +212 0 mcl_core:frosted_ice_0 +212 1 mcl_core:frosted_ice_1 +212 2 mcl_core:frosted_ice_2 +212 3 mcl_core:frosted_ice_3 + +213 0 mcl_nether:magma +214 0 mcl_nether:nether_wart_block +215 0 mcl_nether:red_nether_brick + +//block state data +216 0 mcl_core:bone_block +216 4 mcl_core:bone_block 12 +216 8 mcl_core:bone_block 6 + + + +218 0 mcl_observers:observer_down_off +218 1 mcl_observers:observer_up_off +218 2 mcl_observers:observer_off 0 +218 3 mcl_observers:observer_off 2 +218 4 mcl_observers:observer_off 3 +218 5 mcl_observers:observer_off 1 + +219 1 mcl_chests:white_shulker_box +220 1 mcl_chests:orange_shulker_box +221 1 mcl_chests:magenta_shulker_box +222 1 mcl_chests:lightblue_shulker_box +223 1 mcl_chests:yellow_shulker_box +224 1 mcl_chests:green_shulker_box +225 1 mcl_chests:pink_shulker_box +226 1 mcl_chests:dark_grey_shulker_box +227 1 mcl_chests:grey_shulker_box +228 1 mcl_chests:cyan_shulker_box +229 1 mcl_chests:violet_shulker_box +230 1 mcl_chests:blue_shulker_box +231 1 mcl_chests:brown_shulker_box +232 1 mcl_chests:dark_green_shulker_box +233 1 mcl_chests:red_shulker_box +234 1 mcl_chests:black_shulker_box + + + +235 0 mcl_colorblocks:glazed_terracotta_white 0 +236 0 mcl_colorblocks:glazed_terracotta_orange 0 +237 0 mcl_colorblocks:glazed_terracotta_magenta 0 +238 0 mcl_colorblocks:glazed_terracotta_light_blue 0 +239 0 mcl_colorblocks:glazed_terracotta_yellow 0 +240 0 mcl_colorblocks:glazed_terracotta_lime 0 +241 0 mcl_colorblocks:glazed_terracotta_pink 0 +242 0 mcl_colorblocks:glazed_terracotta_grey 0 +243 0 mcl_colorblocks:glazed_terracotta_silver 0 +244 0 mcl_colorblocks:glazed_terracotta_cyan 0 +245 0 mcl_colorblocks:glazed_terracotta_purple 0 +246 0 mcl_colorblocks:glazed_terracotta_blue 0 +247 0 mcl_colorblocks:glazed_terracotta_brown 0 +248 0 mcl_colorblocks:glazed_terracotta_green 0 +249 0 mcl_colorblocks:glazed_terracotta_red 0 +250 0 mcl_colorblocks:glazed_terracotta_black 0 +235 1 mcl_colorblocks:glazed_terracotta_white 1 +236 1 mcl_colorblocks:glazed_terracotta_orange 1 +237 1 mcl_colorblocks:glazed_terracotta_magenta 1 +238 1 mcl_colorblocks:glazed_terracotta_light_blue 1 +239 1 mcl_colorblocks:glazed_terracotta_yellow 1 +240 1 mcl_colorblocks:glazed_terracotta_lime 1 +241 1 mcl_colorblocks:glazed_terracotta_pink 1 +242 1 mcl_colorblocks:glazed_terracotta_grey 1 +243 1 mcl_colorblocks:glazed_terracotta_silver 1 +244 1 mcl_colorblocks:glazed_terracotta_cyan 1 +245 1 mcl_colorblocks:glazed_terracotta_purple 1 +246 1 mcl_colorblocks:glazed_terracotta_blue 1 +247 1 mcl_colorblocks:glazed_terracotta_brown 1 +248 1 mcl_colorblocks:glazed_terracotta_green 1 +249 1 mcl_colorblocks:glazed_terracotta_red 1 +250 1 mcl_colorblocks:glazed_terracotta_black 1 +235 2 mcl_colorblocks:glazed_terracotta_white 5 +236 2 mcl_colorblocks:glazed_terracotta_orange 5 +237 2 mcl_colorblocks:glazed_terracotta_magenta 5 +238 2 mcl_colorblocks:glazed_terracotta_light_blue 5 +239 2 mcl_colorblocks:glazed_terracotta_yellow 5 +240 2 mcl_colorblocks:glazed_terracotta_lime 5 +241 2 mcl_colorblocks:glazed_terracotta_pink 5 +242 2 mcl_colorblocks:glazed_terracotta_grey 5 +243 2 mcl_colorblocks:glazed_terracotta_silver 5 +244 2 mcl_colorblocks:glazed_terracotta_cyan 5 +245 2 mcl_colorblocks:glazed_terracotta_purple 5 +246 2 mcl_colorblocks:glazed_terracotta_blue 5 +247 2 mcl_colorblocks:glazed_terracotta_brown 5 +248 2 mcl_colorblocks:glazed_terracotta_green 5 +249 2 mcl_colorblocks:glazed_terracotta_red 5 +250 2 mcl_colorblocks:glazed_terracotta_black 5 +235 3 mcl_colorblocks:glazed_terracotta_white 3 +236 3 mcl_colorblocks:glazed_terracotta_orange 3 +237 3 mcl_colorblocks:glazed_terracotta_magenta 3 +238 3 mcl_colorblocks:glazed_terracotta_light_blue 3 +239 3 mcl_colorblocks:glazed_terracotta_yellow 3 +240 3 mcl_colorblocks:glazed_terracotta_lime 3 +241 3 mcl_colorblocks:glazed_terracotta_pink 3 +242 3 mcl_colorblocks:glazed_terracotta_grey 3 +243 3 mcl_colorblocks:glazed_terracotta_silver 3 +244 3 mcl_colorblocks:glazed_terracotta_cyan 3 +245 3 mcl_colorblocks:glazed_terracotta_purple 3 +246 3 mcl_colorblocks:glazed_terracotta_blue 3 +247 3 mcl_colorblocks:glazed_terracotta_brown 3 +248 3 mcl_colorblocks:glazed_terracotta_green 3 +249 3 mcl_colorblocks:glazed_terracotta_red 3 +250 3 mcl_colorblocks:glazed_terracotta_black 3 + + +251 0 mcl_colorblocks:concrete_white +251 1 mcl_colorblocks:concrete_orange +251 2 mcl_colorblocks:concrete_magenta +251 3 mcl_colorblocks:concrete_light_blue +251 4 mcl_colorblocks:concrete_yellow +251 5 mcl_colorblocks:concrete_lime +251 6 mcl_colorblocks:concrete_pink +251 7 mcl_colorblocks:concrete_grey +251 8 mcl_colorblocks:concrete_silver +251 9 mcl_colorblocks:concrete_cyan +251 10 mcl_colorblocks:concrete_purple +251 11 mcl_colorblocks:concrete_blue +251 12 mcl_colorblocks:concrete_brown +251 13 mcl_colorblocks:concrete_green +251 14 mcl_colorblocks:concrete_red +251 15 mcl_colorblocks:concrete_black + +252 0 mcl_colorblocks:concrete_powder_white +252 1 mcl_colorblocks:concrete_powder_orange +252 2 mcl_colorblocks:concrete_powder_magenta +252 3 mcl_colorblocks:concrete_powder_light_blue +252 4 mcl_colorblocks:concrete_powder_yellow +252 5 mcl_colorblocks:concrete_powder_lime +252 6 mcl_colorblocks:concrete_powder_pink +252 7 mcl_colorblocks:concrete_powder_grey +252 8 mcl_colorblocks:concrete_powder_silver +252 9 mcl_colorblocks:concrete_powder_cyan +252 10 mcl_colorblocks:concrete_powder_purple +252 11 mcl_colorblocks:concrete_powder_blue +252 12 mcl_colorblocks:concrete_powder_brown +252 13 mcl_colorblocks:concrete_powder_green +252 14 mcl_colorblocks:concrete_powder_red +252 15 mcl_colorblocks:concrete_powder_black + + +324 0,4 mcl_doors:wooden_door_b_1 2 +324 1,5 mcl_doors:wooden_door_b_1 3 +324 2,6 mcl_doors:wooden_door_b_1 0 +324 3,7 mcl_doors:wooden_door_b_1 1 +324 8 mcl_doors:wooden_door_t_1 +324 9 mcl_doors:wooden_door_t_1 +324 10 mcl_doors:wooden_door_t_1 +324 11 mcl_doors:wooden_door_t_1 + +// Below here are non-MC blocks. We need to put these blocks in the +// table to make translation a bit easier + +// random pick for 31:1 grass +931 0 mcl_flowers:tallgrass // the 8+ entries are used +931 1 mcl_flowers:tallgrass // internally to vary grass +931 2 mcl_flowers:tallgrass // height randomly +931 3 mcl_flowers:tallgrass +931 4 mcl_flowers:tallgrass + +// flower pot plants +940 0 mcl_flowerpots:flower_pot +940 1 mcl_flowerpots:flower_pot_mushroom_brown +940 2 mcl_flowerpots:flower_pot_mushroom_red +940 3 mcl_flowerpots:flower_pot_cactus +940 4 mcl_flowerpots:flower_pot_deadbush +940 5 mcl_flowerpots:flower_pot_poppy +940 6 mcl_flowerpots:flower_pot_blue_orchid +940 7 mcl_flowerpots:flower_pot_allium +940 8 mcl_flowerpots:flower_pot_azure_bluet +940 9 mcl_flowerpots:flower_pot_tulip_red +940 10 mcl_flowerpots:flower_pot_tulip_orange +940 11 mcl_flowerpots:flower_pot_tulip_white +940 12 mcl_flowerpots:flower_pot_tulip_pink +940 13 mcl_flowerpots:flower_pot_oxeye_daisy +940 14 mcl_flowerpots:flower_pot_sapling +940 15 mcl_flowerpots:flower_pot_sprucesapling + +// overflow +941 0 mcl_flowerpots:flower_pot_birchsapling + +941 1 mcl_flowerpots:flower_pot_junglesapling +941 2 mcl_flowerpots:flower_pot_acaciasapling +941 3 mcl_flowerpots:flower_pot_sapling +941 4 mcl_flowerpots:flower_pot_fern +941 5 mcl_flowerpots:flower_pot_dandelion + +964 0 mcl_doors:wooden_door_b_1 1 +964 1 mcl_doors:wooden_door_b_1 2 +964 2 mcl_doors:wooden_door_b_1 3 +964 3 mcl_doors:wooden_door_b_1 0 +964 4 mcl_doors:wooden_door_b_2 2 +964 5 mcl_doors:wooden_door_b_2 3 +964 6 mcl_doors:wooden_door_b_2 0 +964 7 mcl_doors:wooden_door_b_2 1 +964 8 mcl_doors:wooden_door_b_2 1 +964 9 mcl_doors:wooden_door_b_2 2 +964 10 mcl_doors:wooden_door_b_2 3 +964 11 mcl_doors:wooden_door_b_2 0 +964 12 mcl_doors:wooden_door_b_1 0 +964 13 mcl_doors:wooden_door_b_1 1 +964 14 mcl_doors:wooden_door_b_1 2 +964 15 mcl_doors:wooden_door_b_1 3 + +965 0 mcl_doors:wooden_door_t_1 1 +965 1 mcl_doors:wooden_door_t_1 2 +965 2 mcl_doors:wooden_door_t_1 3 +965 3 mcl_doors:wooden_door_t_1 0 +965 4 mcl_doors:wooden_door_t_2 2 +965 5 mcl_doors:wooden_door_t_2 3 +965 6 mcl_doors:wooden_door_t_2 0 +965 7 mcl_doors:wooden_door_t_2 1 +965 8 mcl_doors:wooden_door_t_2 1 +965 9 mcl_doors:wooden_door_t_2 2 +965 10 mcl_doors:wooden_door_t_2 3 +965 11 mcl_doors:wooden_door_t_2 0 +965 12 mcl_doors:wooden_door_t_1 0 +965 13 mcl_doors:wooden_door_t_1 1 +965 14 mcl_doors:wooden_door_t_1 2 +965 15 mcl_doors:wooden_door_t_1 3 + +966 0 mcl_doors:iron_door_b_1 1 +966 1 mcl_doors:iron_door_b_1 2 +966 2 mcl_doors:iron_door_b_1 3 +966 3 mcl_doors:iron_door_b_1 0 +966 4 mcl_doors:iron_door_b_2 3 +966 5 mcl_doors:iron_door_b_2 3 +966 6 mcl_doors:iron_door_b_2 0 +966 7 mcl_doors:iron_door_b_2 1 +966 8 mcl_doors:iron_door_b_2 1 +966 9 mcl_doors:iron_door_b_2 2 +966 10 mcl_doors:iron_door_b_2 3 +966 11 mcl_doors:iron_door_b_2 0 +966 12 mcl_doors:iron_door_b_1 0 +966 13 mcl_doors:iron_door_b_1 1 +966 14 mcl_doors:iron_door_b_1 2 +966 15 mcl_doors:iron_door_b_1 3 + +967 0 mcl_doors:iron_door_t_1 1 +967 1 mcl_doors:iron_door_t_1 2 +967 2 mcl_doors:iron_door_t_1 3 +967 3 mcl_doors:iron_door_t_1 0 +967 4 mcl_doors:iron_door_t_2 3 +967 5 mcl_doors:iron_door_t_2 3 +967 6 mcl_doors:iron_door_t_2 0 +967 7 mcl_doors:iron_door_t_2 1 +967 8 mcl_doors:iron_door_t_2 1 +967 9 mcl_doors:iron_door_t_2 3 +967 10 mcl_doors:iron_door_t_2 3 +967 11 mcl_doors:iron_door_t_2 0 +967 12 mcl_doors:iron_door_t_1 0 +967 13 mcl_doors:iron_door_t_1 1 +967 14 mcl_doors:iron_door_t_1 2 +967 15 mcl_doors:iron_door_t_1 3 + + + +968 0 mcl_doors:spruce_door_b_1 1 +968 1 mcl_doors:spruce_door_b_1 2 +968 2 mcl_doors:spruce_door_b_1 3 +968 3 mcl_doors:spruce_door_b_1 0 +968 4 mcl_doors:spruce_door_b_2 2 +968 5 mcl_doors:spruce_door_b_2 3 +968 6 mcl_doors:spruce_door_b_2 0 +968 7 mcl_doors:spruce_door_b_2 1 +968 8 mcl_doors:spruce_door_b_2 1 +968 9 mcl_doors:spruce_door_b_2 2 +968 10 mcl_doors:spruce_door_b_2 3 +968 11 mcl_doors:spruce_door_b_2 0 +968 12 mcl_doors:spruce_door_b_1 0 +968 13 mcl_doors:spruce_door_b_1 1 +968 14 mcl_doors:spruce_door_b_1 2 +968 15 mcl_doors:spruce_door_b_1 3 + +969 0 mcl_doors:spruce_door_t_1 1 +969 1 mcl_doors:spruce_door_t_1 2 +969 2 mcl_doors:spruce_door_t_1 3 +969 3 mcl_doors:spruce_door_t_1 0 +969 4 mcl_doors:spruce_door_t_2 2 +969 5 mcl_doors:spruce_door_t_2 3 +969 6 mcl_doors:spruce_door_t_2 0 +969 7 mcl_doors:spruce_door_t_2 1 +969 8 mcl_doors:spruce_door_t_2 1 +969 9 mcl_doors:spruce_door_t_2 2 +969 10 mcl_doors:spruce_door_t_2 3 +969 11 mcl_doors:spruce_door_t_2 0 +969 12 mcl_doors:spruce_door_t_1 0 +969 13 mcl_doors:spruce_door_t_1 1 +969 14 mcl_doors:spruce_door_t_1 2 +969 15 mcl_doors:spruce_door_t_1 3 + + + +970 0 mcl_doors:birch_door_b_1 1 +970 1 mcl_doors:birch_door_b_1 2 +970 2 mcl_doors:birch_door_b_1 3 +970 3 mcl_doors:birch_door_b_1 0 +970 4 mcl_doors:birch_door_b_2 2 +970 5 mcl_doors:birch_door_b_2 3 +970 6 mcl_doors:birch_door_b_2 0 +970 7 mcl_doors:birch_door_b_2 1 +970 8 mcl_doors:birch_door_b_2 1 +970 9 mcl_doors:birch_door_b_2 2 +970 10 mcl_doors:birch_door_b_2 3 +970 11 mcl_doors:birch_door_b_2 0 +970 12 mcl_doors:birch_door_b_1 0 +970 13 mcl_doors:birch_door_b_1 1 +970 14 mcl_doors:birch_door_b_1 2 +970 15 mcl_doors:birch_door_b_1 3 + +971 0 mcl_doors:birch_door_t_1 1 +971 1 mcl_doors:birch_door_t_1 2 +971 2 mcl_doors:birch_door_t_1 3 +971 3 mcl_doors:birch_door_t_1 0 +971 4 mcl_doors:birch_door_t_2 2 +971 5 mcl_doors:birch_door_t_2 3 +971 6 mcl_doors:birch_door_t_2 0 +971 7 mcl_doors:birch_door_t_2 1 +971 8 mcl_doors:birch_door_t_2 1 +971 9 mcl_doors:birch_door_t_2 2 +971 10 mcl_doors:birch_door_t_2 3 +971 11 mcl_doors:birch_door_t_2 0 +971 12 mcl_doors:birch_door_t_1 0 +971 13 mcl_doors:birch_door_t_1 1 +971 14 mcl_doors:birch_door_t_1 2 +971 15 mcl_doors:birch_door_t_1 3 + + + +972 0 mcl_doors:jungle_door_b_1 1 +972 1 mcl_doors:jungle_door_b_1 2 +972 2 mcl_doors:jungle_door_b_1 3 +972 3 mcl_doors:jungle_door_b_1 0 +972 4 mcl_doors:jungle_door_b_2 2 +972 5 mcl_doors:jungle_door_b_2 3 +972 6 mcl_doors:jungle_door_b_2 0 +972 7 mcl_doors:jungle_door_b_2 1 +972 8 mcl_doors:jungle_door_b_2 1 +972 9 mcl_doors:jungle_door_b_2 2 +972 10 mcl_doors:jungle_door_b_2 3 +972 11 mcl_doors:jungle_door_b_2 0 +972 12 mcl_doors:jungle_door_b_1 0 +972 13 mcl_doors:jungle_door_b_1 1 +972 14 mcl_doors:jungle_door_b_1 2 +972 15 mcl_doors:jungle_door_b_1 3 + +973 0 mcl_doors:jungle_door_t_1 1 +973 1 mcl_doors:jungle_door_t_1 2 +973 2 mcl_doors:jungle_door_t_1 3 +973 3 mcl_doors:jungle_door_t_1 0 +973 4 mcl_doors:jungle_door_t_2 2 +973 5 mcl_doors:jungle_door_t_2 3 +973 6 mcl_doors:jungle_door_t_2 0 +973 7 mcl_doors:jungle_door_t_2 1 +973 8 mcl_doors:jungle_door_t_2 1 +973 9 mcl_doors:jungle_door_t_2 2 +973 10 mcl_doors:jungle_door_t_2 3 +973 11 mcl_doors:jungle_door_t_2 0 +973 12 mcl_doors:jungle_door_t_1 0 +973 13 mcl_doors:jungle_door_t_1 1 +973 14 mcl_doors:jungle_door_t_1 2 +973 15 mcl_doors:jungle_door_t_1 3 + + + +974 0 mcl_doors:acacia_door_b_1 1 +974 1 mcl_doors:acacia_door_b_1 2 +974 2 mcl_doors:acacia_door_b_1 3 +974 3 mcl_doors:acacia_door_b_1 0 +974 4 mcl_doors:acacia_door_b_2 2 +974 5 mcl_doors:acacia_door_b_2 3 +974 6 mcl_doors:acacia_door_b_2 0 +974 7 mcl_doors:acacia_door_b_2 1 +974 8 mcl_doors:acacia_door_b_2 1 +974 9 mcl_doors:acacia_door_b_2 2 +974 10 mcl_doors:acacia_door_b_2 3 +974 11 mcl_doors:acacia_door_b_2 0 +974 12 mcl_doors:acacia_door_b_1 0 +974 13 mcl_doors:acacia_door_b_1 1 +974 14 mcl_doors:acacia_door_b_1 2 +974 15 mcl_doors:acacia_door_b_1 3 + +975 0 mcl_doors:acacia_door_t_1 1 +975 1 mcl_doors:acacia_door_t_1 2 +975 2 mcl_doors:acacia_door_t_1 3 +975 3 mcl_doors:acacia_door_t_1 0 +975 4 mcl_doors:acacia_door_t_2 2 +975 5 mcl_doors:acacia_door_t_2 3 +975 6 mcl_doors:acacia_door_t_2 0 +975 7 mcl_doors:acacia_door_t_2 1 +975 8 mcl_doors:acacia_door_t_2 1 +975 9 mcl_doors:acacia_door_t_2 2 +975 10 mcl_doors:acacia_door_t_2 3 +975 11 mcl_doors:acacia_door_t_2 0 +975 12 mcl_doors:acacia_door_t_1 0 +975 13 mcl_doors:acacia_door_t_1 1 +975 14 mcl_doors:acacia_door_t_1 2 +975 15 mcl_doors:acacia_door_t_1 3 + + + +976 0 mcl_doors:dark_oak_door_b_1 1 +976 1 mcl_doors:dark_oak_door_b_1 2 +976 2 mcl_doors:dark_oak_door_b_1 3 +976 3 mcl_doors:dark_oak_door_b_1 0 +976 4 mcl_doors:dark_oak_door_b_2 2 +976 5 mcl_doors:dark_oak_door_b_2 3 +976 6 mcl_doors:dark_oak_door_b_2 0 +976 7 mcl_doors:dark_oak_door_b_2 1 +976 8 mcl_doors:dark_oak_door_b_2 1 +976 9 mcl_doors:dark_oak_door_b_2 2 +976 10 mcl_doors:dark_oak_door_b_2 3 +976 11 mcl_doors:dark_oak_door_b_2 0 +976 12 mcl_doors:dark_oak_door_b_1 0 +976 13 mcl_doors:dark_oak_door_b_1 1 +976 14 mcl_doors:dark_oak_door_b_1 2 +976 15 mcl_doors:dark_oak_door_b_1 3 + +977 0 mcl_doors:dark_oak_door_t_1 1 +977 1 mcl_doors:dark_oak_door_t_1 2 +977 2 mcl_doors:dark_oak_door_t_1 3 +977 3 mcl_doors:dark_oak_door_t_1 0 +977 4 mcl_doors:dark_oak_door_t_2 2 +977 5 mcl_doors:dark_oak_door_t_2 3 +977 6 mcl_doors:dark_oak_door_t_2 0 +977 7 mcl_doors:dark_oak_door_t_2 1 +977 8 mcl_doors:dark_oak_door_t_2 1 +977 9 mcl_doors:dark_oak_door_t_2 2 +977 10 mcl_doors:dark_oak_door_t_2 3 +977 11 mcl_doors:dark_oak_door_t_2 0 +977 12 mcl_doors:dark_oak_door_t_1 0 +977 13 mcl_doors:dark_oak_door_t_1 1 +977 14 mcl_doors:dark_oak_door_t_1 2 +977 15 mcl_doors:dark_oak_door_t_1 3 +