Add a script to dump sprite data and gifs
This commit is contained in:
		
							parent
							
								
									df04cbcac3
								
							
						
					
					
						commit
						d56e75a2cf
					
				
							
								
								
									
										5
									
								
								Gui.py
								
								
								
								
							
							
						
						
									
										5
									
								
								Gui.py
								
								
								
								
							| 
						 | 
				
			
			@ -1575,7 +1575,7 @@ class SpriteSelector(object):
 | 
			
		|||
        return local_path("data", "sprites", "custom")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_image_for_sprite(sprite):
 | 
			
		||||
def get_image_for_sprite(sprite, gif_only: bool = False):
 | 
			
		||||
    if not sprite.valid:
 | 
			
		||||
        return None
 | 
			
		||||
    height = 24
 | 
			
		||||
| 
						 | 
				
			
			@ -1671,6 +1671,9 @@ def get_image_for_sprite(sprite):
 | 
			
		|||
        return gif
 | 
			
		||||
 | 
			
		||||
    gif_data = make_gif(draw_sprite_into_gif)
 | 
			
		||||
    if gif_only:
 | 
			
		||||
        return gif_data
 | 
			
		||||
 | 
			
		||||
    image = PhotoImage(data=gif_data)
 | 
			
		||||
 | 
			
		||||
    return image.zoom(2)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
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()
 | 
			
		||||
		Loading…
	
		Reference in New Issue