diff --git a/models/cube.mtl b/models/cube.mtl index 8adac6e..f9b34f1 100644 --- a/models/cube.mtl +++ b/models/cube.mtl @@ -1,7 +1,16 @@ Ka 1.0 1.0 1.0 -# Only the diffuse colors seems to have any effect, the ambient color stays white -Kd {r} {g} {b} Ks 0.0 0.0 0.0 -d {a} illum 1 +#if {TEXTURES} +# Only the diffuse colors seems to have any effect, the ambient color stays white +Kd {r} {g} {b} +d {a} +#else +Kd 1.0 1.0 1.0 +d 1.0 + +map_Ka {texture} +map_Kd {texture} +#endif + diff --git a/mt2obj.py b/mt2obj.py index c084627..fa3d730 100755 --- a/mt2obj.py +++ b/mt2obj.py @@ -31,7 +31,9 @@ def convert(desc, vals): i += 1 continue c = desc[i] - if c == 'x': # copy + if c == '0': # skip + pass + elif c == 'x': # copy out += val, elif c == 's': # string out += str(val), @@ -46,24 +48,98 @@ def convert(desc, vals): i += 1 return out +def pp_new(var, strip_empty=False): + return ({'if_state': 0, '_strip_empty': strip_empty}, var) + +def pp_process(ctx, line): + for k in ctx[1]: + line = line.replace('{' + k + '}', ctx[1][k]) + if ctx[0]['_strip_empty'] and line.strip() == '': + return None + elif line.startswith('# '): # e.g.: # comment + return None + elif line.startswith('#define'): # e.g.: #define name value that may contain spaces + tmp = line.split(' ') + if len(tmp) < 3: + raise Exception('missing something...') + ctx[1][tmp[1]] = ' '.join(tmp[2:])[:-1] # [:-1] to cut off the \n at the end + return None + elif line.startswith('#if'): #e.g.: #if {name} + tmp = line.split(' ') + if len(tmp) < 2: + raise Exception('Missing something..') + tmp = tmp[1] + if tmp.strip().lower() in ['1', 'true', 'yes']: + ctx[0]['if_state'] = 1 # don't ignore current lines, expecting #else or #endif + else: + ctx[0]['if_state'] = 2 # ignore current lines, expecting #else or #endif + return None + elif line.startswith('#else') and ctx[0]['if_state'] == 1: + ctx[0]['if_state'] = 4 # ignore current lines, expecting #endif + elif line.startswith('#else') and ctx[0]['if_state'] == 2: + ctx[0]['if_state'] = 3 # don't ignore current lines, expecting #endif + elif line.startswith('#endif'): + if ctx[0]['if_state'] not in [3, 4]: + raise Exception('stray #endif') + ctx[0]['if_state'] = 0 # no #if in sight + else: + if ctx[0]['if_state'] in [2, 4]: + pass # ignore, see above + else: + return line + return None + +def parse_arglist(s): + if s == ':': + return {} + state = 1 + tmp1 = '' + tmp2 = '' + out = {} + for c in s: + if state == 1: # part before = + if c == ':': + if tmp1 == '': + raise Exception('name must be non-empty') + out[tmp1] = '1' # set to '1' if no value given, e.g. 'foo=1:bar:cats=yes' would set bar to '1' + elif c == '=': + state = 2 + else: + tmp1 += c + elif state == 2: # part after = + if c == ':': + if tmp1 == '': + raise Exception('name must be non-empty') + out[tmp1] = tmp2 + else: + tmp2 += c + if tmp1 != '' and state == 1: + out[tmp1] = '1' + elif tmp1 != '' and state == 2: + out[tmp1] = tmp2 + return out + nodetbl = {} -r_entry = re.compile(r'^(\S+) (\S+) (\d+) (\d+) (\d+)(?: (\d+))?$') +r_entry = re.compile(r'^(\S+) (\S+) (\d+) (\d+) (\d+) (\S+)(?: (\d+))?$') f = open("nodes.txt", "r") for l in f: m = r_entry.match(l) - nodetbl[m.group(1)] = convert('siiii', m.groups()[1:]) + nodetbl[m.group(1)] = convert('siiisi', m.groups()[1:]) f.close() -optargs, args = getopt.getopt(sys.argv[1:], '') +optargs, args = getopt.getopt(sys.argv[1:], 't') if len(args) < 1: print("Usage: %s <.mts schematic>" % sys.argv[0]) print("Converts .mts schematics to Wavefront .obj geometry files") print("") print("Output files are written into directory of source file.") + print('') + print('Options:') + print('\t-t\t\tEnable textures') exit(1) else: sch = open(args[0], "rb") @@ -82,7 +158,7 @@ else: l = struct.unpack("!H", sch.read(2))[0] name = sch.read(l).decode('ascii') nodemap[i] = name - # TODO use zlib.compressobj + # TODO use zlib.decompressobj() instead of decompressing everything at once cdata = sch.read() sch.close() data = zlib.decompress(cdata) @@ -111,12 +187,14 @@ else: obj.write("o node%d\n" % i) obj.write("usemtl %s\n" % nname.replace(":", "__")) objd = open("models/" + nodetbl[nname][0] + ".obj", 'r') + tmp = parse_arglist(nodetbl[nname][4]) + tmp['TEXTURES'] = str('-t' in optargs) + ppctx = pp_new(tmp, strip_empty=True) for line in objd: - if line.strip() == "": - pass - elif line.startswith("#"): - pass # comment - elif line.startswith("v "): + line = pp_process(ppctx, line) + if line is None: + continue + if line.startswith("v "): tmp = line.split(" ") vx, vy, vz = float(tmp[1]), float(tmp[2]), float(tmp[3]) vx += x @@ -125,6 +203,7 @@ else: obj.write("v %f %f %f\n" % (vx, vy, vz)) else: obj.write(line) + del ppctx objd.close() obj.write("\n") i += 1 @@ -135,18 +214,25 @@ else: mtl.write("newmtl %s\n" % node.replace(":", "__")) c = nodetbl[node] mtld = open("models/" + nodetbl[node][0] + ".mtl", 'r') + if len(c) > 5: # if there is transparency + tmp1 = c[5]/255 + else: + tmp1 = 1.0 + tmp = { + 'r': str(c[1]/255), + 'g': str(c[2]/255), + 'b': str(c[3]/255), + 'a': str(tmp1), + 'TEXTURES': str('-t' in optargs), + } + tmp.update(parse_arglist(nodetbl[node][4])) + ppctx = pp_new(tmp, strip_empty=True) for line in mtld: - if line.strip() == "": - pass - elif line.startswith("#"): - pass # comment - else: - if len(c) > 4: # if there is transparency - tmp1 = c[4]/255 - else: - tmp1 = 1.0 - tmp2 = line.replace("{r}", str(c[1]/255)).replace("{g}", str(c[2]/255)).replace("{b}", str(c[3]/255)).replace("{a}", str(tmp1)) - mtl.write(tmp2) + line = pp_process(ppctx, line) + if line is None: + continue + mtl.write(line) + del ppctx mtl.write("\n") mtld.close() mtl.close() diff --git a/nodes.txt b/nodes.txt index 7037362..28ce89d 100644 --- a/nodes.txt +++ b/nodes.txt @@ -1,283 +1,283 @@ -beds:bed_top_red cube 131 22 22 -beds:bed_bottom_blue cube 10 11 122 -beds:bed_bottom_grey cube 147 147 147 -beds:bed_bottom_white cube 215 215 215 -beds:bed_bottom_green cube 12 92 10 -beds:bed_bottom_orange cube 217 123 10 -beds:bed_top_blue cube 11 12 122 -beds:bed_bottom_violet cube 129 10 180 -beds:bed_top_green cube 13 92 11 -beds:bed_bottom_black cube 10 10 10 -beds:bed_bottom_yellow cube 215 214 0 -beds:bed_bottom_red cube 131 21 21 -beds:bed_top_white cube 215 215 215 -beds:bed_top_yellow cube 215 214 0 -beds:bed_top_violet cube 129 11 180 -beds:bed_top_grey cube 147 147 147 -beds:bed_top_black cube 11 11 11 -beds:bed_top_orange cube 216 123 11 -nuke:hardcore_mese_tnt cube 173 173 0 -nuke:iron_tnt cube 158 158 157 -nuke:hardcore_iron_tnt cube 158 158 157 -nuke:mese_tnt cube 173 173 0 -christmas:present_green_violet cube 189 36 157 -christmas:present_blue_green cube 62 186 50 -christmas:present_orange_green cube 62 186 50 -christmas:tree cube 45 36 24 -christmas:present_orange_violet cube 189 36 157 -christmas:present_blue_orange cube 245 207 20 -christmas:present_blue_violet cube 189 36 157 -christmas:star cube 236 252 55 -christmas:present_green_orange cube 245 207 20 -christmas:leaves cube 33 54 30 -snow:moss cube 51 64 29 -snow:snow5 cube 225 227 255 -snow:snow3 cube 225 227 255 -snow:needles_decorated cube 7 50 19 -snow:needles cube 6 49 18 -snow:snow8 cube 225 227 255 -snow:star cube 214 142 0 -snow:snow cube 225 227 255 -snow:xmas_tree cube 87 88 28 -snow:sapling_pine cube 3 54 20 -snow:snow6 cube 225 227 255 -snow:snow_block cube 225 227 255 -snow:snow7 cube 225 227 255 -snow:snow_brick cube 223 225 253 -snow:dirt_with_snow cube 225 227 255 -snow:snow4 cube 225 227 255 -snow:snow2 cube 225 227 255 -snow:ice cube 155 155 254 -stairs:stair_wood_tile_full cube 78 64 44 -stairs:stair_mossycobble cube 102 116 85 -stairs:slab_jungle_wood cube 51 35 12 -stairs:slab_wood_tile_center cube 128 100 57 -stairs:stair_wood_tile cube 78 65 44 -stairs:stair_cobble cube 133 133 133 -stairs:slab_invisible cube 0 0 0 -stairs:stair_stonebrick cube 104 100 99 -stairs:slab_iron_glass cube 222 222 222 -stairs:stair_wood cube 128 100 57 -stairs:stair_stone cube 91 88 87 -stairs:stair_obsidian cube 16 16 16 -stairs:stair_copperblock cube 110 86 60 -stairs:stair_super_glow_glass cube 255 255 120 -stairs:slab_iron_stone cube 134 134 134 -stairs:stair_stone_tile cube 97 97 97 -stairs:stair_desert_stone cube 122 74 57 -stairs:slab_bronzeblock cube 116 70 26 -stairs:stair_goldblock cube 126 116 35 -stairs:stair_iron_checker cube 142 142 142 -stairs:stair_steelblock cube 153 153 153 -stairs:slab_coal_stone cube 70 70 70 -stairs:slab_obsidian_glass cube 16 17 17 -stairs:stair_sandstone cube 180 162 121 -stairs:stair_iron_stone cube 134 134 134 -stairs:slab_steelblock cube 153 153 153 -stairs:stair_split_stone_tile cube 97 97 97 -stairs:stair_brick cube 156 157 151 -stairs:stair_sandstonebrick cube 160 144 108 -stairs:slab_mossycobble cube 102 116 85 -stairs:stair_glass cube 192 192 227 -stairs:slab_cactus_checker cube 130 138 130 -stairs:slab_jungletree cube 120 106 78 -stairs:stair_coal_stone cube 70 70 70 -stairs:slab_junglewood cube 51 35 12 -stairs:stair_jungletree cube 120 106 78 -stairs:slab_wood cube 128 100 57 -stairs:stair_iron_stone_bricks cube 104 98 97 -stairs:stair_coal_checker cube 133 133 133 -stairs:stair_plankstone cube 66 51 23 -stairs:stair_obsidian_glass cube 16 17 17 -stairs:slab_desert_stone cube 122 74 57 -stairs:slab_iron_stone_bricks cube 104 98 97 -stairs:slab_glass cube 192 192 227 -stairs:stair_bronzeblock cube 116 70 26 -stairs:slab_desert_stonebrick cube 105 64 49 -stairs:slab_tree cube 66 52 35 -stairs:slab_stone cube 91 88 87 -stairs:stair_cactus_checker cube 130 138 130 -stairs:slab_diamondblock cube 103 195 201 -stairs:slab_super_glow_glass cube 255 255 120 -stairs:slab_cobble cube 133 133 133 -stairs:stair_tree cube 66 52 35 -stairs:slab_wood_tile cube 78 65 44 -stairs:slab_glow_glass cube 255 226 114 -stairs:slab_wood_tile_full cube 78 64 44 -stairs:stair_coal_stone_bricks cube 79 76 75 -stairs:slab_coal_glass cube 130 130 130 -stairs:stair_coal_glass cube 130 130 130 -stairs:slab_brick cube 156 157 151 -stairs:slab_stone_tile cube 97 97 97 -stairs:slab_goldblock cube 126 116 35 -stairs:slab_plankstone cube 66 51 23 -stairs:slab_coal_stone_bricks cube 79 76 75 -stairs:stair_jungle_wood cube 51 35 12 -stairs:stair_circle_stone_bricks cube 91 88 87 -stairs:slab_iron_checker cube 142 142 142 -stairs:stair_wood_tile_center cube 128 100 57 -stairs:slab_stonebrick cube 104 100 99 -stairs:slab_sandstonebrick cube 160 144 108 -stairs:stair_invisible cube 0 0 0 -stairs:stair_iron_glass cube 222 222 222 -stairs:stair_desert_stonebrick cube 105 64 49 -stairs:stair_diamondblock cube 103 195 201 -stairs:slab_sandstone cube 180 162 121 -stairs:slab_copperblock cube 110 86 60 -stairs:stair_glow_glass cube 255 226 114 -stairs:stair_junglewood cube 51 35 12 -stairs:slab_circle_stone_bricks cube 91 88 87 -stairs:slab_obsidian cube 16 16 16 -stairs:slab_coal_checker cube 133 133 133 -stairs:slab_split_stone_tile cube 97 97 97 -mg:savannawood cube 128 113 57 -mg:pineleaves cube 16 30 14 -mg:savannasapling cube 32 36 13 -mg:pinewood cube 120 93 66 -mg:pinetree cube 26 21 14 -mg:savannaleaves cube 70 62 41 -mg:pinesapling cube 12 12 5 -mg:savannatree cube 52 51 37 -mg:dirt_with_dry_grass cube 114 99 53 -bones:bones cube 74 74 74 -default:glass cube 192 192 227 64 -default:water_flowing cube 39 66 106 128 -default:junglesapling cube 37 34 14 -default:sandstonebrick cube 160 144 108 -default:furnace_active cube 97 93 91 -default:sign_wall cube 163 141 106 -default:lava_source cube 255 100 0 -default:goldblock cube 126 116 35 -default:obsidian_glass cube 16 17 17 64 -default:stone_with_copper cube 91 88 87 -default:grass_1 cube 72 109 32 -default:papyrus cube 98 173 32 -default:ice cube 155 155 254 -default:wood cube 128 100 57 -default:stone_with_mese cube 91 88 87 -default:diamondblock cube 103 195 201 -default:coalblock cube 58 58 58 -default:stone_with_gold cube 91 88 87 -default:apple cube 50 0 0 -default:grass_4 cube 73 112 33 -default:dirt_with_grass_footsteps cube 101 138 35 -default:desert_stonebrick cube 105 64 49 -default:cloud cube 255 255 255 -default:stone_with_iron cube 91 88 87 -default:bronzeblock cube 116 70 26 -default:dirt_with_snow cube 225 227 255 -default:fence_wood cube 128 100 57 -default:desert_sand cube 209 165 97 -default:steelblock cube 153 153 153 -default:rail cube 114 82 33 -default:nyancat_rainbow cube 58 19 128 -default:lava_flowing cube 255 100 0 -default:sapling cube 63 59 40 -default:snow cube 225 227 255 -default:furnace cube 97 93 91 -default:desert_stone cube 122 74 57 -default:tree cube 66 52 35 -default:jungletree cube 120 106 78 -default:cactus cube 132 143 108 -default:water_source cube 39 66 106 128 -default:mese cube 200 202 0 -default:stone_with_coal cube 91 88 87 -default:nyancat cube 38 16 66 -default:snowblock cube 225 227 255 -default:stonebrick cube 104 100 99 -default:jungleleaves cube 18 25 14 -default:sandstone cube 180 162 121 -default:dirt_with_grass cube 72 107 44 -default:brick cube 156 157 151 -default:junglegrass cube 82 133 35 -default:cobble cube 133 133 133 -default:grass_3 cube 71 109 32 -default:stone cube 91 88 87 -default:sand cube 219 209 167 -default:obsidian cube 16 16 16 -default:bookshelf cube 128 100 57 -default:leaves cube 30 47 28 -default:grass_5 cube 73 112 33 -default:ladder cube 153 109 39 -default:dirt cube 122 83 58 -default:mossycobble cube 102 116 85 -default:stone_with_diamond cube 91 88 87 -default:grass_2 cube 71 109 32 -default:chest cube 238 219 171 -default:gravel cube 92 84 76 -default:torch cube 213 154 84 -default:clay cube 178 178 178 -default:chest_locked cube 238 219 171 -default:copperblock cube 110 86 60 -default:dry_shrub cube 117 75 14 -default:junglewood cube 51 35 12 -signs:sign_yard cube 163 141 106 -signs:sign_post cube 4 2 0 -junglegrass:shortest cube 55 92 21 -junglegrass:short cube 49 89 15 -junglegrass:medium cube 83 135 36 -doors:door_wood_t_2 cube 87 64 30 -doors:door_wood_b_1 cube 87 64 30 -doors:door_wood_t_1 cube 87 64 30 -doors:door_steel_t_1 cube 162 162 162 -doors:door_steel_t_2 cube 162 162 162 -doors:door_steel_b_1 cube 162 162 162 -doors:door_wood_b_2 cube 87 64 30 -doors:door_steel_b_2 cube 162 162 162 -poisonivy:climbing cube 91 143 24 -poisonivy:sproutling cube 111 166 30 -poisonivy:seedling cube 127 190 34 -wool:magenta cube 210 3 121 -wool:blue cube 0 78 152 -wool:cyan cube 0 142 150 -wool:orange cube 220 91 24 -wool:grey cube 141 141 141 -wool:dark_grey cube 65 65 65 -wool:pink cube 255 144 144 -wool:white cube 228 228 228 -wool:violet cube 96 2 177 -wool:black cube 33 33 33 -wool:green cube 99 230 28 -wool:brown cube 95 49 0 -wool:yellow cube 253 237 16 -wool:dark_green cube 36 109 0 -wool:red cube 180 20 20 -fire:basic_flame cube 147 47 11 -vessels:glass_bottle cube 211 212 211 -vessels:steel_bottle cube 109 109 109 -vessels:drinking_glass cube 220 220 220 -flowers:rose cube 159 9 0 -flowers:potted_tulip cube 114 41 22 -flowers:viola cube 108 83 106 -flowers:tulip cube 91 146 5 -flowers:geranium cube 54 72 184 -flowers:potted_dandelion_yellow cube 116 43 22 -flowers:waterlily cube 46 108 0 -flowers:waterlily_225 cube 49 110 2 -flowers:dandelion_yellow cube 147 178 3 -flowers:potted_geranium cube 76 60 124 -flowers:dandelion_white cube 136 179 95 -flowers:potted_rose cube 115 40 22 -flowers:waterlily_675 cube 165 194 103 -flowers:waterlily_45 cube 150 179 101 -flowers:potted_dandelion_white cube 116 43 25 -flowers:seaweed cube 28 112 11 -flowers:potted_viola cube 115 41 24 -farming:wheat_6 cube 165 151 74 -farming:cotton_4 cube 58 46 27 -farming:cotton_7 cube 194 189 185 -farming:soil_wet cube 73 40 19 -farming:cotton_3 cube 57 48 27 -farming:wheat_1 cube 130 186 84 -farming:wheat_7 cube 178 159 81 -farming:cotton_5 cube 65 49 31 -farming:soil cube 110 75 53 -farming:wheat_8 cube 177 160 81 -farming:wheat_2 cube 142 190 86 -farming:wheat_4 cube 168 186 83 -farming:wheat_5 cube 177 166 79 -farming:wheat_3 cube 148 185 83 -farming:cotton_1 cube 66 61 31 -farming:cotton_2 cube 59 51 28 -farming:cotton_6 cube 75 60 44 -farming:cotton_8 cube 228 226 225 +beds:bed_top_red cube 131 22 22 : +beds:bed_bottom_blue cube 10 11 122 : +beds:bed_bottom_grey cube 147 147 147 : +beds:bed_bottom_white cube 215 215 215 : +beds:bed_bottom_green cube 12 92 10 : +beds:bed_bottom_orange cube 217 123 10 : +beds:bed_top_blue cube 11 12 122 : +beds:bed_bottom_violet cube 129 10 180 : +beds:bed_top_green cube 13 92 11 : +beds:bed_bottom_black cube 10 10 10 : +beds:bed_bottom_yellow cube 215 214 0 : +beds:bed_bottom_red cube 131 21 21 : +beds:bed_top_white cube 215 215 215 : +beds:bed_top_yellow cube 215 214 0 : +beds:bed_top_violet cube 129 11 180 : +beds:bed_top_grey cube 147 147 147 : +beds:bed_top_black cube 11 11 11 : +beds:bed_top_orange cube 216 123 11 : +nuke:hardcore_mese_tnt cube 173 173 0 : +nuke:iron_tnt cube 158 158 157 : +nuke:hardcore_iron_tnt cube 158 158 157 : +nuke:mese_tnt cube 173 173 0 : +christmas:present_green_violet cube 189 36 157 : +christmas:present_blue_green cube 62 186 50 : +christmas:present_orange_green cube 62 186 50 : +christmas:tree cube 45 36 24 : +christmas:present_orange_violet cube 189 36 157 : +christmas:present_blue_orange cube 245 207 20 : +christmas:present_blue_violet cube 189 36 157 : +christmas:star cube 236 252 55 : +christmas:present_green_orange cube 245 207 20 : +christmas:leaves cube 33 54 30 : +snow:moss cube 51 64 29 : +snow:snow5 cube 225 227 255 : +snow:snow3 cube 225 227 255 : +snow:needles_decorated cube 7 50 19 : +snow:needles cube 6 49 18 : +snow:snow8 cube 225 227 255 : +snow:star cube 214 142 0 : +snow:snow cube 225 227 255 : +snow:xmas_tree cube 87 88 28 : +snow:sapling_pine cube 3 54 20 : +snow:snow6 cube 225 227 255 : +snow:snow_block cube 225 227 255 : +snow:snow7 cube 225 227 255 : +snow:snow_brick cube 223 225 253 : +snow:dirt_with_snow cube 225 227 255 : +snow:snow4 cube 225 227 255 : +snow:snow2 cube 225 227 255 : +snow:ice cube 155 155 254 : +stairs:stair_wood_tile_full cube 78 64 44 : +stairs:stair_mossycobble cube 102 116 85 : +stairs:slab_jungle_wood cube 51 35 12 : +stairs:slab_wood_tile_center cube 128 100 57 : +stairs:stair_wood_tile cube 78 65 44 : +stairs:stair_cobble cube 133 133 133 : +stairs:slab_invisible cube 0 0 0 : +stairs:stair_stonebrick cube 104 100 99 : +stairs:slab_iron_glass cube 222 222 222 : +stairs:stair_wood cube 128 100 57 : +stairs:stair_stone cube 91 88 87 : +stairs:stair_obsidian cube 16 16 16 : +stairs:stair_copperblock cube 110 86 60 : +stairs:stair_super_glow_glass cube 255 255 120 : +stairs:slab_iron_stone cube 134 134 134 : +stairs:stair_stone_tile cube 97 97 97 : +stairs:stair_desert_stone cube 122 74 57 : +stairs:slab_bronzeblock cube 116 70 26 : +stairs:stair_goldblock cube 126 116 35 : +stairs:stair_iron_checker cube 142 142 142 : +stairs:stair_steelblock cube 153 153 153 : +stairs:slab_coal_stone cube 70 70 70 : +stairs:slab_obsidian_glass cube 16 17 17 : +stairs:stair_sandstone cube 180 162 121 : +stairs:stair_iron_stone cube 134 134 134 : +stairs:slab_steelblock cube 153 153 153 : +stairs:stair_split_stone_tile cube 97 97 97 : +stairs:stair_brick cube 156 157 151 : +stairs:stair_sandstonebrick cube 160 144 108 : +stairs:slab_mossycobble cube 102 116 85 : +stairs:stair_glass cube 192 192 227 : +stairs:slab_cactus_checker cube 130 138 130 : +stairs:slab_jungletree cube 120 106 78 : +stairs:stair_coal_stone cube 70 70 70 : +stairs:slab_junglewood cube 51 35 12 : +stairs:stair_jungletree cube 120 106 78 : +stairs:slab_wood cube 128 100 57 : +stairs:stair_iron_stone_bricks cube 104 98 97 : +stairs:stair_coal_checker cube 133 133 133 : +stairs:stair_plankstone cube 66 51 23 : +stairs:stair_obsidian_glass cube 16 17 17 : +stairs:slab_desert_stone cube 122 74 57 : +stairs:slab_iron_stone_bricks cube 104 98 97 : +stairs:slab_glass cube 192 192 227 : +stairs:stair_bronzeblock cube 116 70 26 : +stairs:slab_desert_stonebrick cube 105 64 49 : +stairs:slab_tree cube 66 52 35 : +stairs:slab_stone cube 91 88 87 : +stairs:stair_cactus_checker cube 130 138 130 : +stairs:slab_diamondblock cube 103 195 201 : +stairs:slab_super_glow_glass cube 255 255 120 : +stairs:slab_cobble cube 133 133 133 : +stairs:stair_tree cube 66 52 35 : +stairs:slab_wood_tile cube 78 65 44 : +stairs:slab_glow_glass cube 255 226 114 : +stairs:slab_wood_tile_full cube 78 64 44 : +stairs:stair_coal_stone_bricks cube 79 76 75 : +stairs:slab_coal_glass cube 130 130 130 : +stairs:stair_coal_glass cube 130 130 130 : +stairs:slab_brick cube 156 157 151 : +stairs:slab_stone_tile cube 97 97 97 : +stairs:slab_goldblock cube 126 116 35 : +stairs:slab_plankstone cube 66 51 23 : +stairs:slab_coal_stone_bricks cube 79 76 75 : +stairs:stair_jungle_wood cube 51 35 12 : +stairs:stair_circle_stone_bricks cube 91 88 87 : +stairs:slab_iron_checker cube 142 142 142 : +stairs:stair_wood_tile_center cube 128 100 57 : +stairs:slab_stonebrick cube 104 100 99 : +stairs:slab_sandstonebrick cube 160 144 108 : +stairs:stair_invisible cube 0 0 0 : +stairs:stair_iron_glass cube 222 222 222 : +stairs:stair_desert_stonebrick cube 105 64 49 : +stairs:stair_diamondblock cube 103 195 201 : +stairs:slab_sandstone cube 180 162 121 : +stairs:slab_copperblock cube 110 86 60 : +stairs:stair_glow_glass cube 255 226 114 : +stairs:stair_junglewood cube 51 35 12 : +stairs:slab_circle_stone_bricks cube 91 88 87 : +stairs:slab_obsidian cube 16 16 16 : +stairs:slab_coal_checker cube 133 133 133 : +stairs:slab_split_stone_tile cube 97 97 97 : +mg:savannawood cube 128 113 57 : +mg:pineleaves cube 16 30 14 : +mg:savannasapling cube 32 36 13 : +mg:pinewood cube 120 93 66 : +mg:pinetree cube 26 21 14 : +mg:savannaleaves cube 70 62 41 : +mg:pinesapling cube 12 12 5 : +mg:savannatree cube 52 51 37 : +mg:dirt_with_dry_grass cube 114 99 53 : +bones:bones cube 74 74 74 : +default:glass cube 192 192 227 : 64 +default:water_flowing cube 39 66 106 : 128 +default:junglesapling cube 37 34 14 : +default:sandstonebrick cube 160 144 108 : +default:furnace_active cube 97 93 91 : +default:sign_wall cube 163 141 106 : +default:lava_source cube 255 100 0 : +default:goldblock cube 126 116 35 : +default:obsidian_glass cube 16 17 17 : 64 +default:stone_with_copper cube 91 88 87 : +default:grass_1 cube 72 109 32 : +default:papyrus cube 98 173 32 : +default:ice cube 155 155 254 : +default:wood cube 128 100 57 : +default:stone_with_mese cube 91 88 87 : +default:diamondblock cube 103 195 201 : +default:coalblock cube 58 58 58 : +default:stone_with_gold cube 91 88 87 : +default:apple cube 50 0 0 : +default:grass_4 cube 73 112 33 : +default:dirt_with_grass_footsteps cube 101 138 35 : +default:desert_stonebrick cube 105 64 49 : +default:cloud cube 255 255 255 : +default:stone_with_iron cube 91 88 87 : +default:bronzeblock cube 116 70 26 : +default:dirt_with_snow cube 225 227 255 : +default:fence_wood cube 128 100 57 : +default:desert_sand cube 209 165 97 : +default:steelblock cube 153 153 153 : +default:rail cube 114 82 33 : +default:nyancat_rainbow cube 58 19 128 : +default:lava_flowing cube 255 100 0 : +default:sapling cube 63 59 40 : +default:snow cube 225 227 255 : +default:furnace cube 97 93 91 : +default:desert_stone cube 122 74 57 : +default:tree cube 66 52 35 : +default:jungletree cube 120 106 78 : +default:cactus cube 132 143 108 : +default:water_source cube 39 66 106 : 128 +default:mese cube 200 202 0 : +default:stone_with_coal cube 91 88 87 : +default:nyancat cube 38 16 66 : +default:snowblock cube 225 227 255 : +default:stonebrick cube 104 100 99 : +default:jungleleaves cube 18 25 14 : +default:sandstone cube 180 162 121 : +default:dirt_with_grass cube 72 107 44 : +default:brick cube 156 157 151 : +default:junglegrass cube 82 133 35 : +default:cobble cube 133 133 133 : +default:grass_3 cube 71 109 32 : +default:stone cube 91 88 87 : +default:sand cube 219 209 167 : +default:obsidian cube 16 16 16 : +default:bookshelf cube 128 100 57 : +default:leaves cube 30 47 28 : +default:grass_5 cube 73 112 33 : +default:ladder cube 153 109 39 : +default:dirt cube 122 83 58 : +default:mossycobble cube 102 116 85 : +default:stone_with_diamond cube 91 88 87 : +default:grass_2 cube 71 109 32 : +default:chest cube 238 219 171 : +default:gravel cube 92 84 76 : +default:torch cube 213 154 84 : +default:clay cube 178 178 178 : +default:chest_locked cube 238 219 171 : +default:copperblock cube 110 86 60 : +default:dry_shrub cube 117 75 14 : +default:junglewood cube 51 35 12 : +signs:sign_yard cube 163 141 106 : +signs:sign_post cube 4 2 0 : +junglegrass:shortest cube 55 92 21 : +junglegrass:short cube 49 89 15 : +junglegrass:medium cube 83 135 36 : +doors:door_wood_t_2 cube 87 64 30 : +doors:door_wood_b_1 cube 87 64 30 : +doors:door_wood_t_1 cube 87 64 30 : +doors:door_steel_t_1 cube 162 162 162 : +doors:door_steel_t_2 cube 162 162 162 : +doors:door_steel_b_1 cube 162 162 162 : +doors:door_wood_b_2 cube 87 64 30 : +doors:door_steel_b_2 cube 162 162 162 : +poisonivy:climbing cube 91 143 24 : +poisonivy:sproutling cube 111 166 30 : +poisonivy:seedling cube 127 190 34 : +wool:magenta cube 210 3 121 texture=wool_magenta.png +wool:blue cube 0 78 152 texture=wool_blue.png +wool:cyan cube 0 142 150 : +wool:orange cube 220 91 24 texture=wool_orange.png +wool:grey cube 141 141 141 : +wool:dark_grey cube 65 65 65 : +wool:pink cube 255 144 144 : +wool:white cube 228 228 228 : +wool:violet cube 96 2 177 : +wool:black cube 33 33 33 : +wool:green cube 99 230 28 : +wool:brown cube 95 49 0 : +wool:yellow cube 253 237 16 texture=wool_yellow.png +wool:dark_green cube 36 109 0 : +wool:red cube 180 20 20 : +fire:basic_flame cube 147 47 11 : +vessels:glass_bottle cube 211 212 211 : +vessels:steel_bottle cube 109 109 109 : +vessels:drinking_glass cube 220 220 220 : +flowers:rose cube 159 9 0 : +flowers:potted_tulip cube 114 41 22 : +flowers:viola cube 108 83 106 : +flowers:tulip cube 91 146 5 : +flowers:geranium cube 54 72 184 : +flowers:potted_dandelion_yellow cube 116 43 22 : +flowers:waterlily cube 46 108 0 : +flowers:waterlily_225 cube 49 110 2 : +flowers:dandelion_yellow cube 147 178 3 : +flowers:potted_geranium cube 76 60 124 : +flowers:dandelion_white cube 136 179 95 : +flowers:potted_rose cube 115 40 22 : +flowers:waterlily_675 cube 165 194 103 : +flowers:waterlily_45 cube 150 179 101 : +flowers:potted_dandelion_white cube 116 43 25 : +flowers:seaweed cube 28 112 11 : +flowers:potted_viola cube 115 41 24 : +farming:wheat_6 cube 165 151 74 : +farming:cotton_4 cube 58 46 27 : +farming:cotton_7 cube 194 189 185 : +farming:soil_wet cube 73 40 19 : +farming:cotton_3 cube 57 48 27 : +farming:wheat_1 cube 130 186 84 : +farming:wheat_7 cube 178 159 81 : +farming:cotton_5 cube 65 49 31 : +farming:soil cube 110 75 53 : +farming:wheat_8 cube 177 160 81 : +farming:wheat_2 cube 142 190 86 : +farming:wheat_4 cube 168 186 83 : +farming:wheat_5 cube 177 166 79 : +farming:wheat_3 cube 148 185 83 : +farming:cotton_1 cube 66 61 31 : +farming:cotton_2 cube 59 51 28 : +farming:cotton_6 cube 75 60 44 : +farming:cotton_8 cube 228 226 225 :