fixup gen_sprites
This commit is contained in:
parent
eded1071c4
commit
2d367e6ded
|
@ -6,7 +6,7 @@ if [[ $# < 1 ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
src_dir=$1
|
src_dir=$1
|
||||||
out_dir=assets/sprite/
|
out_dir=assets/sprites/
|
||||||
dpi=192
|
dpi=192
|
||||||
|
|
||||||
svg_to_png="inkscape -C"
|
svg_to_png="inkscape -C"
|
||||||
|
@ -24,8 +24,11 @@ function gen() {
|
||||||
dst_png=$out_dir/$name.png
|
dst_png=$out_dir/$name.png
|
||||||
dst_map=$out_dir/$name.map
|
dst_map=$out_dir/$name.map
|
||||||
|
|
||||||
$svg_to_png $src -o $dst_png -d $dpi || exit 1
|
[[ "$src" -nt "$dst_png" ]] &&
|
||||||
$gen_sprite_map < $src > $dst_map || exit 1
|
($svg_to_png $src -o $dst_png -d $dpi || exit 1)
|
||||||
|
|
||||||
|
[[ "$src" -nt "$dst_map" ]] &&
|
||||||
|
($gen_sprite_map < $src > $dst_map || exit 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
gen blocks 192
|
gen blocks 192
|
||||||
|
|
|
@ -16,6 +16,12 @@ let sexp_of_clip c =
|
||||||
List.map Sexplib.Conv.sexp_of_int
|
List.map Sexplib.Conv.sexp_of_int
|
||||||
[c.x; c.y; c.w; c.h; c.ox; c.oy])
|
[c.x; c.y; c.w; c.h; c.ox; c.oy])
|
||||||
|
|
||||||
|
let sexp_of_sprite_map clips =
|
||||||
|
Sexp.List (
|
||||||
|
Atom "map" ::
|
||||||
|
(List.sort (fun a b -> compare b.name a.name) clips |>
|
||||||
|
List.rev_map sexp_of_clip))
|
||||||
|
|
||||||
let svg v = ("http://www.w3.org/2000/svg", v)
|
let svg v = ("http://www.w3.org/2000/svg", v)
|
||||||
let ink v = ("http://www.inkscape.org/namespaces/inkscape", v)
|
let ink v = ("http://www.inkscape.org/namespaces/inkscape", v)
|
||||||
let sodi v = ("http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd", v)
|
let sodi v = ("http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd", v)
|
||||||
|
@ -98,17 +104,15 @@ let extract_clips xml =
|
||||||
| `El_end -> el_end ()
|
| `El_end -> el_end ()
|
||||||
do () done;
|
do () done;
|
||||||
|
|
||||||
List.sort
|
s.clips
|
||||||
(fun a b -> String.compare a.name b.name)
|
|
||||||
s.clips
|
|
||||||
|
|
||||||
let gen_sprite_map ic oc =
|
let gen_sprite_map ic oc =
|
||||||
Xmlm.make_input (`Channel ic) |>
|
let sprite_map =
|
||||||
extract_clips |>
|
Xmlm.make_input (`Channel ic) |>
|
||||||
List.iter (fun clip ->
|
extract_clips
|
||||||
Format.kasprintf (output_string oc)
|
in
|
||||||
"%a\n" Sexp.pp (sexp_of_clip clip))
|
Format.kasprintf (output_string oc) "%a\n"
|
||||||
|
Sexp.pp_hum (sexp_of_sprite_map sprite_map)
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
gen_sprite_map stdin stdout
|
gen_sprite_map stdin stdout
|
||||||
|
|
Loading…
Reference in New Issue