Add preview generator and update preview textures
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 242 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 208 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 264 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 248 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 242 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 206 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 210 B  | 
| 
		 Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 196 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 282 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 314 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 280 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 456 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 318 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 300 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 276 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 284 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 281 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 362 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 192 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 225 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 253 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 184 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 185 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 215 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 226 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 202 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 186 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 187 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 211 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 317 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 184 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 183 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 211 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 213 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 200 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 262 B  | 
| 
		 Before Width: | Height: | Size: 907 B After Width: | Height: | Size: 215 B  | 
							
								
								
									
										44
									
								
								3d_armor/textures/preview_index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,44 @@
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_wood.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_wood.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_wood.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_wood.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_cactus.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_cactus.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_cactus.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_cactus.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_steel.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_steel.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_steel.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_steel.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_bronze.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_bronze.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_bronze.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_bronze.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_gold.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_gold.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_gold.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_gold.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_diamond.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_diamond.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_diamond.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_diamond.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_mithril.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_mithril.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_mithril.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_mithril.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_crystal.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_crystal.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_crystal.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_crystal.png:feet
 | 
			
		||||
 | 
			
		||||
3d_armor/textures/3d_armor_helmet_admin.png:head
 | 
			
		||||
3d_armor/textures/3d_armor_chestplate_admin.png:torso
 | 
			
		||||
3d_armor/textures/3d_armor_leggings_admin.png:legs
 | 
			
		||||
3d_armor/textures/3d_armor_boots_admin.png:feet
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1005 B After Width: | Height: | Size: 550 B  | 
							
								
								
									
										1
									
								
								hazmat_suit/textures/preview_index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1 @@
 | 
			
		||||
hazmat_suit/textures/hazmat_suit_suit_hazmat.png:all
 | 
			
		||||
							
								
								
									
										81
									
								
								preview_gen.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,81 @@
 | 
			
		||||
#!/usr/bin/python
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import Image
 | 
			
		||||
 | 
			
		||||
try :
 | 
			
		||||
	arg = sys.argv[1]
 | 
			
		||||
except IndexError :
 | 
			
		||||
	print "Usage: preview_gen.py <index_file>"
 | 
			
		||||
	sys.exit(1)
 | 
			
		||||
 | 
			
		||||
try :
 | 
			
		||||
	index = open(arg, "r")
 | 
			
		||||
except IOError :
 | 
			
		||||
	print "Failed to open index file%s" %s (arg)
 | 
			
		||||
	sys.exit(1)
 | 
			
		||||
 | 
			
		||||
preview = []
 | 
			
		||||
 | 
			
		||||
for line in index.readlines() :
 | 
			
		||||
	if ":" in line :
 | 
			
		||||
		line = line.rstrip('\n')
 | 
			
		||||
		preview.append(line.split(':'))
 | 
			
		||||
 | 
			
		||||
print "Generating preview images..."
 | 
			
		||||
for fn, place in preview :
 | 
			
		||||
	try :
 | 
			
		||||
		imi = Image.open(fn)
 | 
			
		||||
	except IOError :
 | 
			
		||||
		print "Failed to open %s" % (fn)
 | 
			
		||||
		sys.exit(1)
 | 
			
		||||
 | 
			
		||||
	w, h = imi.size
 | 
			
		||||
	if h != w / 2:
 | 
			
		||||
		print "Incompatible texture size %s" % (fn)
 | 
			
		||||
		sys.exit(1)
 | 
			
		||||
 | 
			
		||||
	s = w / 64
 | 
			
		||||
	imo = Image.new("RGBA", (16 * s, 32 * s))
 | 
			
		||||
	
 | 
			
		||||
	if place == "all" or place == "head" :
 | 
			
		||||
		face = (40 * s, 8 * s, 48 * s, 16 * s)
 | 
			
		||||
		side_l = (56 * s, 8 * s, 57 * s, 16 * s)
 | 
			
		||||
		side_r = (63 * s, 8 * s, 64 * s, 16 * s)
 | 
			
		||||
		imo.paste(imi.crop(side_l), (4 * s, 0, 5 * s, 8 * s))
 | 
			
		||||
		imo.paste(imi.crop(side_r), (11 * s, 0, 12 * s, 8 * s))
 | 
			
		||||
		imo.paste(imi.crop(face), (4 * s, 0, 12 * s, 8 * s))
 | 
			
		||||
 | 
			
		||||
	if place == "all" or place == "torso" :
 | 
			
		||||
		arm = (44 * s, 20 * s, 48 * s, 32 * s)
 | 
			
		||||
		body = (20 * s, 20 * s, 28 * s, 32 * s)
 | 
			
		||||
		imo.paste(imi.crop(arm), (0 * s, 8 * s, 4 * s, 20 * s))
 | 
			
		||||
		imo.paste(imi.crop(arm).transpose(Image.FLIP_LEFT_RIGHT),
 | 
			
		||||
				(12 * s, 8 * s, 16 * s, 20 * s))
 | 
			
		||||
		imo.paste(imi.crop(body), (4 * s, 8 * s, 12 * s, 20 * s))
 | 
			
		||||
 | 
			
		||||
	if place == "all" or place == "legs" :
 | 
			
		||||
		leg = (4 * s, 20 * s, 8 * s, 32 * s)
 | 
			
		||||
		imo.paste(imi.crop(leg), (4 * s, 20 * s, 8 * s, 32 * s))
 | 
			
		||||
		imo.paste(imi.crop(leg).transpose(Image.FLIP_LEFT_RIGHT),
 | 
			
		||||
				(8 * s, 20 * s, 12 * s, 32 * s))
 | 
			
		||||
 | 
			
		||||
	if place == "all" or place == "feet" :
 | 
			
		||||
		boot = (20 * s, 4 * s, 24 * s, 11 * s)
 | 
			
		||||
		imo.paste(imi.crop(boot), (4 * s, 25 * s, 8 * s, 32 * s))
 | 
			
		||||
		imo.paste(imi.crop(boot).transpose(Image.FLIP_LEFT_RIGHT),
 | 
			
		||||
				(8 * s, 25 * s, 12 * s, 32 * s))
 | 
			
		||||
 | 
			
		||||
	size = (32 * s, 64 * s)
 | 
			
		||||
	imo = imo.resize(size)
 | 
			
		||||
 | 
			
		||||
	if place == "shield" :
 | 
			
		||||
		shield = (0, 0, 16 * s, 16 * s)
 | 
			
		||||
		imo.paste(imi.crop(shield), (16 * s, 32 * s, 32 * s, 48 * s))
 | 
			
		||||
 | 
			
		||||
	outfile = fn.replace(".png", "_preview.png")
 | 
			
		||||
	imo.save(outfile)
 | 
			
		||||
	print outfile
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								shields/textures/preview_index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,11 @@
 | 
			
		||||
shields/textures/shields_shield_wood.png:shield
 | 
			
		||||
shields/textures/shields_shield_enhanced_wood.png:shield
 | 
			
		||||
shields/textures/shields_shield_cactus.png:shield
 | 
			
		||||
shields/textures/shields_shield_enhanced_cactus.png:shield
 | 
			
		||||
shields/textures/shields_shield_steel.png:shield
 | 
			
		||||
shields/textures/shields_shield_bronze.png:shield
 | 
			
		||||
shields/textures/shields_shield_gold.png:shield
 | 
			
		||||
shields/textures/shields_shield_diamond.png:shield
 | 
			
		||||
shields/textures/shields_shield_mithril.png:shield
 | 
			
		||||
shields/textures/shields_shield_crystal.png:shield
 | 
			
		||||
shields/textures/shields_shield_admin.png:shield
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 298 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 312 B  | 
| 
		 Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 462 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 283 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 289 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 405 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 409 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 300 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 312 B  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 284 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 373 B  | 
							
								
								
									
										41
									
								
								technic_armor/textures/preview_index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,41 @@
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_brass.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_brass.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_brass.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_brass.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_brass.png:shield
 | 
			
		||||
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_cast.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_cast.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_cast.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_cast.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_cast.png:shield
 | 
			
		||||
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_stainless.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_stainless.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_stainless.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_stainless.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_stainless.png:shield
 | 
			
		||||
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_tin.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_tin.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_tin.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_tin.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_tin.png:shield
 | 
			
		||||
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_lead.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_lead.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_lead.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_lead.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_lead.png:shield
 | 
			
		||||
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_carbon.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_carbon.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_carbon.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_carbon.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_carbon.png:shield
 | 
			
		||||
 | 
			
		||||
technic_armor/textures/technic_armor_helmet_silver.png:head
 | 
			
		||||
technic_armor/textures/technic_armor_chestplate_silver.png:torso
 | 
			
		||||
technic_armor/textures/technic_armor_leggings_silver.png:legs
 | 
			
		||||
technic_armor/textures/technic_armor_boots_silver.png:feet
 | 
			
		||||
technic_armor/textures/technic_armor_shield_silver.png:shield
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 352 B  | 
| 
		 Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 213 B  | 
| 
		 Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 337 B  | 
| 
		 Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 297 B  | 
| 
		 Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 305 B  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 326 B  | 
| 
		 Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 354 B  | 
| 
		 Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 582 B  | 
| 
		 Before Width: | Height: | Size: 526 B After Width: | Height: | Size: 482 B  | 
| 
		 Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 555 B  | 
| 
		 Before Width: | Height: | Size: 936 B After Width: | Height: | Size: 578 B  | 
| 
		 Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 445 B  | 
| 
		 Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 554 B  | 
| 
		 Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 547 B  | 
| 
		 Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 242 B  | 
| 
		 Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 176 B  | 
| 
		 Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 237 B  | 
| 
		 Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 197 B  | 
| 
		 Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 210 B  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 218 B  | 
| 
		 Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 236 B  | 
| 
		 Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 368 B  | 
| 
		 Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 219 B  | 
| 
		 Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 351 B  | 
| 
		 Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 362 B  | 
| 
		 Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 308 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 348 B  | 
| 
		 Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 359 B  | 
| 
		 Before Width: | Height: | Size: 735 B After Width: | Height: | Size: 632 B  | 
| 
		 Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 595 B  | 
| 
		 Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 620 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 729 B  | 
| 
		 Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 586 B  | 
| 
		 Before Width: | Height: | Size: 787 B After Width: | Height: | Size: 638 B  | 
| 
		 Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 615 B  |