Add texturing ability

master
sfan5 2014-08-16 22:21:48 +02:00
parent a2a2238862
commit 558634174c
3 changed files with 402 additions and 307 deletions

View File

@ -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

128
mt2obj.py
View File

@ -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()

566
nodes.txt
View File

@ -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 :