#!/usr/bin/env python """ Archive extract script with sub-directory creation """ # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 import io import re import sys import json from os import walk import PIL from PIL import Image class AtlasFrame: filename = None xy = None size = None rotate = False orig = None offset = None class Atlas: image = None format = None size = None frames = [] def serialize(obj): return (obj.__class__, obj.__dict__) def create_atlas(path): f = [] for (dirpath, dirnames, filenames) in walk(path): f.extend(filenames) break for filename in f: print(filename) print(f) atlas = Atlas() atlas.image = 'atlas.png' atlas.format = 'png' atlas.size = [10, 10] return atlas def main(dir): print(dir) atlas = create_atlas(dir) json_str = createPhaserJson(atlas) json_filename= 'assets.json' with io.open(json_filename, 'w', encoding='utf8') as outfile: outfile.write(str(json_str)) outfile.closed print('wrote '+ json_filename ) def createPhaserJson(atlas): data = { 'frames': [], 'meta': { 'app': 'libgdx', 'version': 'latest', 'image': atlas.image, 'format': atlas.format, 'size': { 'w': atlas.size[0], 'h': atlas.size[1] }, 'scale': 1 } } for frame in atlas.frames: framedata = { 'filename': frame.filename, 'frame': { 'x': frame.xy[0], 'y': frame.xy[1], 'w': frame.size[0], 'h': frame.size[1] }, 'rotated': frame.rotate == 'true', 'trimmed': False, 'spriteSourceSize': { 'x': frame.offset[0], 'y': frame.offset[1], 'w': frame.orig[0], 'h': frame.orig[1] }, 'sourceSize': { 'w': frame.orig[0], 'h': frame.orig[1] } } data['frames'].append(framedata) json_str = json.dumps(data, indent=4, sort_keys=False, separators=(',', ': '), ensure_ascii=False) return json_str if __name__ == "__main__": main(sys.argv[1])