40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import argparse | ||
|  | import json | ||
|  | from os import listdir | ||
|  | from os.path import isfile, join | ||
|  | from Rom import Sprite | ||
|  | from Gui import get_image_for_sprite | ||
|  | 
 | ||
|  | parser = argparse.ArgumentParser(description='Dump sprite data and .png files to a directory.') | ||
|  | parser.add_argument('-i') | ||
|  | parser.add_argument('-o') | ||
|  | args = parser.parse_args() | ||
|  | 
 | ||
|  | if not args.i or not args.o: | ||
|  |     print('Invalid arguments provided. -i and -o are required.') | ||
|  |     exit() | ||
|  | 
 | ||
|  | # Target directories | ||
|  | input_dir = args.i | ||
|  | output_dir = args.o | ||
|  | 
 | ||
|  | # Get a list of all files in the input directory | ||
|  | targetFiles = [file for file in listdir(input_dir) if isfile(join(input_dir, file))] | ||
|  | 
 | ||
|  | spriteData = {} | ||
|  | 
 | ||
|  | for file in targetFiles: | ||
|  |     if file[-5:] != '.zspr': | ||
|  |         continue | ||
|  | 
 | ||
|  |     sprite = Sprite(join(input_dir, file)) | ||
|  |     spriteData[sprite.name] = file | ||
|  | 
 | ||
|  |     image = open(f'{output_dir}/{sprite.name}.gif', 'wb') | ||
|  |     image.write(get_image_for_sprite(sprite, True)) | ||
|  |     image.close() | ||
|  | 
 | ||
|  | jsonFile = open(f'{output_dir}/spriteData.json', 'w') | ||
|  | jsonFile.write(json.dumps(spriteData)) | ||
|  | jsonFile.close() |