css and empty files fixed
[brisk-img.git] / bin / spriter.sh
1 #!/bin/bash
2 #
3 #  Max height in play area 121 px
4 #
5 # set -x
6
7
8 if [ $# -ne 2 -o "$1" = "-h" -o "$1" = "--help" ]; then
9     echo "$0 <folder_in> <deck>"
10     exit 1
11 fi
12 fold=$1
13 deck=$2
14
15 fold_in="${fold}/${deck}_tmp"
16 fold_ou="${fold}/${deck}_out"
17
18 # sfx=$2
19
20 w=$(identify -format "%w" ${fold_in}/00.png)
21 h=$(identify -format "%h" ${fold_in}/00.png)
22
23 convert -size $((w * 9))x$((h * 5)) xc:none ${fold_in}/${deck}_bg.png
24 convert -size $((h * 9))x$((w * 5)) xc:none ${fold_in}/${deck}_oriz_bg.png
25
26 convert -size ${w}x${h} xc:none ${fold_ou}/cards_${deck}_empty.png
27 convert -size ${h}x${w} xc:none ${fold_ou}/cards_${deck}_empty_ea.png
28 cp ${fold_ou}/cards_${deck}_empty_ea.png ${fold_ou}/cards_${deck}_empty_we.png
29 cssname="${fold_ou}/cards_${deck}.css"
30 rm -f $cssname
31 touch $cssname
32
33 for direction in "" "_ea" "_we"; do
34     horiz_sfx=""
35     if [ "$direction" != "" ]; then
36         horiz_sfx="_oriz"
37     fi
38     argz="${fold_in}/${deck}${horiz_sfx}_bg.png"
39
40     for seed in 0 1 2 3 4; do
41         for card in $(seq 0 9); do
42             if [ "$direction" = "" ]; then
43                 x=$(((seed * 2 + card / 5) * w)) 
44                 y=$(((card % 5) * h))
45             else
46                 x=$(((seed * 2 + card / 5) * h)) 
47                 y=$(((card % 5) * w))
48             fi
49
50             card_id=$(printf "%02d" "$((seed * 10 + card))")
51             if [ "$card_id" = "40" ]; then
52                 card_id="cover"
53             fi
54             card_url="img/cards_${deck}"
55             cat <<EOF >> $cssname
56 img[data-card-id="${card_id}${direction}"] {
57     background: url('${card_url}${direction}.png') -${x}px -${y}px;
58 }
59
60 EOF
61             
62             if [ "$card_id" = "40" ]; then
63                 fin_no=$(printf "%s/%s_src/cover${direction}.png" "$fold_in" "$deck" "$((seed * 10 + card))")
64                 fin=$(printf "%s/%02d%s.png" "$fold_in" "$((seed * 10 + card))" "$direction")
65                 if [ "$direction" == "" ]; then
66                     cp "$fin_no" "$fin"
67                 fi
68             else
69                 fin_no=$(printf "%s/%02d.png" "$fold_in" "$((seed * 10 + card))")
70                 fin=$(printf "%s/%02d%s.png" "$fold_in" "$((seed * 10 + card))" "$direction")
71             fi
72             if [ "$direction" == "" ]; then
73                 :
74             elif [ "$direction" == "_ea" ]; then
75                 convert -rotate 270 "$fin_no" "$fin"
76             elif [ "$direction" == "_we" ]; then
77                 convert -rotate 90 "$fin_no" "$fin"                
78             else
79                 exit 1
80             fi
81             
82             argz="$argz $fin -geometry +${x}+${y} -composite "
83             if [ $seed -eq 4 ]; then
84                 break
85             fi
86         done
87     done
88     # full color: argz="$argz ${fold_ou}${deck}.png"
89     full_out="${fold_ou}/cards_${deck}${direction}.png"
90     argz="$argz +dither -colors 255 $full_out"
91     convert $argz
92     echo "Created $full_out"
93 done
94
95 # rm  ${fold}/[0-3][0-9]${deck}*.png ${fold_ou}${deck}_bg.png ${fold_ou}${deck}_oriz_bg.png