Add a script to dump sprite data and gifs

This commit is contained in:
Chris Wilson 2020-08-31 23:17:33 -04:00
parent df04cbcac3
commit d56e75a2cf
2 changed files with 43 additions and 1 deletions

5
Gui.py
View File

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

39
dumpSprites.py Normal file
View File

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