package cli import ase "../vendors/aseprite" import "core:encoding/json" import "core:fmt" import "core:os" import "core:slice" import s "core:strings" import rl "vendor:raylib" import stbrp "vendor:stb/rect_pack" import gen "../src/generator" ATLAS_SIZE :: 512 IMPORT_PATH :: "./example.aseprite" EXPORT_PATH :: "./atlas.png" main :: proc() { ase_file, ase_ok := os.read_entire_file(IMPORT_PATH) if !ase_ok { fmt.panicf("Couldn't load file!") } target_dir := os.get_current_directory() atlas: rl.Image = rl.GenImageColor(ATLAS_SIZE, ATLAS_SIZE, rl.BLANK) atlas_entries: [dynamic]gen.AtlasEntry = make([dynamic]gen.AtlasEntry) gen.unmarshall_aseprite_dir(target_dir, &atlas_entries) metadata := gen.pack_atlas_entries(atlas_entries[:], &atlas, 10, 10) json_bytes, jerr := json.marshal(metadata) os.write_entire_file("./metadata.json", json_bytes) sb := gen.metadata_source_code_generate(metadata[:], gen.odin_source_generator_metadata) odin_output_str := s.to_string(sb) os.write_entire_file("./output.odin", transmute([]byte)odin_output_str) rl.ExportImage(atlas, EXPORT_PATH) }