mirror of
https://gitlab.com/manzerbredes/ochess.git
synced 2025-04-06 01:56:28 +02:00
69 lines
2 KiB
Bash
Executable file
69 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Check requirements
|
|
wai=$(dirname $(readlink -f "$0")) # Current script directory
|
|
[ $(command -v "convert") ] || { echo -e "\e[31mThis script require ImageMagick installed.\e[0m"; exit 1; }
|
|
[ $(command -v "inkscape") ] || { echo -e "\e[31mThis script require Inkscape installed.\e[0m"; exit 1; }
|
|
[ -d "${wai}/../../assets/" ] || { echo -e "\e[31mUnable to found assets folder.\e[0m"; exit 1; }
|
|
boards_path="${wai}/../../assets/boards/" && mkdir -p ${boards_path}
|
|
pieces_path="${wai}/../../assets/pieces/" && mkdir -p ${pieces_path}
|
|
|
|
generate () {
|
|
echo -e "\e[32mGenerating skin $(basename $1)\e[0m"
|
|
|
|
# Configure black's pieces
|
|
bk=$1/bk.png
|
|
bq=$1/bq.png
|
|
br=$1/br.png
|
|
bb=$1/bb.png
|
|
bn=$1/bn.png
|
|
bp=$1/bp.png
|
|
bs=$1/bs.png
|
|
# Configure white's pieces
|
|
wk=$1/wk.png
|
|
wq=$1/wq.png
|
|
wr=$1/wr.png
|
|
wb=$1/wb.png
|
|
wn=$1/wn.png
|
|
wp=$1/wp.png
|
|
ws=$1/ws.png
|
|
|
|
# First build the png files
|
|
for svg in $(find "$1/" -name "*.svg")
|
|
do
|
|
outFile=$(basename $svg|sed "s/\.svg$//g").png
|
|
inkscape -z -e $1/$outFile -w 200 -h 200 $svg > /dev/null
|
|
done
|
|
|
|
if [ ! -e "$ws" ] # Generate Pieces Skin
|
|
then
|
|
convert \( $bk $wk +append \) \
|
|
\( $bq $wq +append \) \
|
|
\( $br $wr +append \) \
|
|
\( $bb $wb +append \) \
|
|
\( $bn $wn +append \) \
|
|
\( $bp $wp +append \) \
|
|
-background none -append "${pieces_path}/$(basename "$1").png"
|
|
else # Generate Squares Skin
|
|
convert \( $bs $ws +append \) \
|
|
-background none -append "${boards_path}/$(basename "$1").png"
|
|
fi
|
|
|
|
rm $1/*.png
|
|
}
|
|
|
|
|
|
if [ $# -eq 1 ]
|
|
then
|
|
# Generate assets for each skin
|
|
for skin in $({ ls -d ${wai}/boards/*; ls -d ${wai}/pieces/*; } | grep "$1")
|
|
do
|
|
generate $skin
|
|
done
|
|
else
|
|
# Generate assets for each skin
|
|
for skin in $({ ls -d ${wai}/boards/*; ls -d ${wai}/pieces/*; })
|
|
do
|
|
generate $skin
|
|
done
|
|
fi
|