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