From 64396ad2c2b817838c220b91869119def28c4834 Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Sun, 7 Jan 2024 12:56:31 +0100 Subject: [PATCH] Initial commit --- .gitignore | 5 ++ README.md | 5 ++ gendeck.sh | 81 ++++++++++++++++++ parts/back.svg | 117 ++++++++++++++++++++++++++ parts/flag-base/ace.svg | 54 ++++++++++++ parts/flag-base/agender.svg | 63 ++++++++++++++ parts/flag-base/aro.svg | 62 ++++++++++++++ parts/flag-base/bi.svg | 60 +++++++++++++ parts/flag-base/gay.svg | 63 ++++++++++++++ parts/flag-base/genderqueer.svg | 50 +++++++++++ parts/flag-base/lesbian.svg | 63 ++++++++++++++ parts/flag-base/nb.svg | 54 ++++++++++++ parts/flag-base/pan.svg | 51 +++++++++++ parts/flag-base/trans.svg | 61 ++++++++++++++ parts/flags/ace.svg | 39 +++++++++ parts/flags/agender.svg | 48 +++++++++++ parts/flags/aro.svg | 47 +++++++++++ parts/flags/bi.svg | 45 ++++++++++ parts/flags/gay.svg | 48 +++++++++++ parts/flags/genderqueer.svg | 35 ++++++++ parts/flags/lesbian.svg | 47 +++++++++++ parts/flags/lgbt.svg | 35 ++++++++ parts/flags/nb.svg | 38 +++++++++ parts/flags/pan.svg | 36 ++++++++ parts/flags/trans.svg | 46 ++++++++++ parts/front.svg | 72 ++++++++++++++++ parts/plain/0.svg | 49 +++++++++++ parts/plain/1.svg | 49 +++++++++++ parts/plain/2.svg | 49 +++++++++++ parts/plain/3.svg | 49 +++++++++++ parts/plain/4.svg | 49 +++++++++++ parts/plain/5.svg | 49 +++++++++++ parts/plain/6.svg | 49 +++++++++++ parts/plain/7.svg | 49 +++++++++++ parts/plain/8.svg | 49 +++++++++++ parts/plain/9.svg | 49 +++++++++++ parts/plain/assemble.sh | 30 +++++++ parts/plain/reverse.svg | 144 ++++++++++++++++++++++++++++++++ parts/plain/skip.svg | 134 +++++++++++++++++++++++++++++ parts/plain/take2.svg | 53 ++++++++++++ parts/special/assemble.sh | 43 ++++++++++ parts/special/take4.svg | 88 +++++++++++++++++++ parts/special/wild.svg | 58 +++++++++++++ 43 files changed, 2365 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 gendeck.sh create mode 100644 parts/back.svg create mode 100644 parts/flag-base/ace.svg create mode 100644 parts/flag-base/agender.svg create mode 100644 parts/flag-base/aro.svg create mode 100644 parts/flag-base/bi.svg create mode 100644 parts/flag-base/gay.svg create mode 100644 parts/flag-base/genderqueer.svg create mode 100644 parts/flag-base/lesbian.svg create mode 100644 parts/flag-base/nb.svg create mode 100644 parts/flag-base/pan.svg create mode 100644 parts/flag-base/trans.svg create mode 100644 parts/flags/ace.svg create mode 100644 parts/flags/agender.svg create mode 100644 parts/flags/aro.svg create mode 100644 parts/flags/bi.svg create mode 100644 parts/flags/gay.svg create mode 100644 parts/flags/genderqueer.svg create mode 100644 parts/flags/lesbian.svg create mode 100644 parts/flags/lgbt.svg create mode 100644 parts/flags/nb.svg create mode 100644 parts/flags/pan.svg create mode 100644 parts/flags/trans.svg create mode 100644 parts/front.svg create mode 100644 parts/plain/0.svg create mode 100644 parts/plain/1.svg create mode 100644 parts/plain/2.svg create mode 100644 parts/plain/3.svg create mode 100644 parts/plain/4.svg create mode 100644 parts/plain/5.svg create mode 100644 parts/plain/6.svg create mode 100644 parts/plain/7.svg create mode 100644 parts/plain/8.svg create mode 100644 parts/plain/9.svg create mode 100755 parts/plain/assemble.sh create mode 100644 parts/plain/reverse.svg create mode 100644 parts/plain/skip.svg create mode 100644 parts/plain/take2.svg create mode 100755 parts/special/assemble.sh create mode 100644 parts/special/take4.svg create mode 100644 parts/special/wild.svg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27d689b --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# my svg design file +# contains inspiration images and design guides which were used to create the cards +design.svg +# build output +dist diff --git a/README.md b/README.md new file mode 100644 index 0000000..0dfe9ad --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +INTRODUCING SLAY\ +*Well what is there to say?*\ +*It's like UNO but gay* 🏳️‍🌈 + +# SLAY diff --git a/gendeck.sh b/gendeck.sh new file mode 100755 index 0000000..49f36bd --- /dev/null +++ b/gendeck.sh @@ -0,0 +1,81 @@ +#!/bin/sh +# requirements: xq, find + +function usage { + echo "gendeck.sh " + echo "where have to replaced with an identity" + echo "available identities:" + find parts/flags -type f | cut -d'/' -f3 | cut -d'.' -f1 | xargs -n 1 echo - + exit 1 +} + +card1="$1" +card2="$2" +card3="$3" +card4="$4" + +function ensure_id { + if [ ! -f "parts/flags/$1.svg" ]; then + echo "Identity $1 doesn't exist" + echo + usage + fi +} + +if [ ! "$card1" = "" ] && [ ! "$card1" = "" ] && [ ! "$card1" = "" ] && [ ! "$card1" = "" ] && [ ! "$card1" = "" ]; then + ensure_id $card1 + ensure_id $card2 + ensure_id $card3 + ensure_id $card4 + + echo "blahaj is generating your deck of cards" + echo "he is trying really hard" + echo "grab a cup of tea - this might take a while" + + echo ... + + rm -rf dist + + # create build folder + mkdir -p dist + + # genrate plain playing cards + mkdir -p dist/plain + mkdir -p dist/plain/$card1 + mkdir -p dist/plain/$card2 + mkdir -p dist/plain/$card3 + mkdir -p dist/plain/$card4 + find parts/plain -type f -iname '*.svg' | \ + cut -d'/' -f3 | \ + cut -d'.' -f1 | \ + while read face; do + sh ./parts/plain/assemble.sh $card1 $face > dist/plain/$card1/$face.svg + sh ./parts/plain/assemble.sh $card2 $face > dist/plain/$card2/$face.svg + sh ./parts/plain/assemble.sh $card3 $face > dist/plain/$card3/$face.svg + sh ./parts/plain/assemble.sh $card4 $face > dist/plain/$card4/$face.svg + done + + echo ... + echo "*sweats*" + echo "blahaj is really sorry - but you gotta wait a little longer" + + # generate special playing cards + mkdir -p dist/special + find parts/special -type f -iname '*.svg' | \ + cut -d'/' -f3 | \ + cut -d'.' -f1 | \ + while read face; do + sh ./parts/special/assemble.sh $face $card1 $card2 $card3 $card4 > dist/special/$face.svg + done + + echo ... + + echo "blahaj finished your deck" + echo "you can find the output files in the dist folder" + echo "(blahaj sorted them - just for you)" + echo "have fun" + + exit 0 +fi + +usage diff --git a/parts/back.svg b/parts/back.svg new file mode 100644 index 0000000..b1beb05 --- /dev/null +++ b/parts/back.svg @@ -0,0 +1,117 @@ + + + +SLAY diff --git a/parts/flag-base/ace.svg b/parts/flag-base/ace.svg new file mode 100644 index 0000000..d1bcc4b --- /dev/null +++ b/parts/flag-base/ace.svg @@ -0,0 +1,54 @@ + + + + diff --git a/parts/flag-base/agender.svg b/parts/flag-base/agender.svg new file mode 100644 index 0000000..a97e031 --- /dev/null +++ b/parts/flag-base/agender.svg @@ -0,0 +1,63 @@ + + + + diff --git a/parts/flag-base/aro.svg b/parts/flag-base/aro.svg new file mode 100644 index 0000000..7e880d5 --- /dev/null +++ b/parts/flag-base/aro.svg @@ -0,0 +1,62 @@ + + + + diff --git a/parts/flag-base/bi.svg b/parts/flag-base/bi.svg new file mode 100644 index 0000000..a886b99 --- /dev/null +++ b/parts/flag-base/bi.svg @@ -0,0 +1,60 @@ + + + + diff --git a/parts/flag-base/gay.svg b/parts/flag-base/gay.svg new file mode 100644 index 0000000..3aa1c95 --- /dev/null +++ b/parts/flag-base/gay.svg @@ -0,0 +1,63 @@ + + + + diff --git a/parts/flag-base/genderqueer.svg b/parts/flag-base/genderqueer.svg new file mode 100644 index 0000000..b957986 --- /dev/null +++ b/parts/flag-base/genderqueer.svg @@ -0,0 +1,50 @@ + + + + diff --git a/parts/flag-base/lesbian.svg b/parts/flag-base/lesbian.svg new file mode 100644 index 0000000..8b5c815 --- /dev/null +++ b/parts/flag-base/lesbian.svg @@ -0,0 +1,63 @@ + + + + diff --git a/parts/flag-base/nb.svg b/parts/flag-base/nb.svg new file mode 100644 index 0000000..a1f753a --- /dev/null +++ b/parts/flag-base/nb.svg @@ -0,0 +1,54 @@ + + + + diff --git a/parts/flag-base/pan.svg b/parts/flag-base/pan.svg new file mode 100644 index 0000000..22bc248 --- /dev/null +++ b/parts/flag-base/pan.svg @@ -0,0 +1,51 @@ + + + + diff --git a/parts/flag-base/trans.svg b/parts/flag-base/trans.svg new file mode 100644 index 0000000..35bddc6 --- /dev/null +++ b/parts/flag-base/trans.svg @@ -0,0 +1,61 @@ + + + + diff --git a/parts/flags/ace.svg b/parts/flags/ace.svg new file mode 100644 index 0000000..553d51e --- /dev/null +++ b/parts/flags/ace.svg @@ -0,0 +1,39 @@ + + + + diff --git a/parts/flags/agender.svg b/parts/flags/agender.svg new file mode 100644 index 0000000..544826e --- /dev/null +++ b/parts/flags/agender.svg @@ -0,0 +1,48 @@ + + + + diff --git a/parts/flags/aro.svg b/parts/flags/aro.svg new file mode 100644 index 0000000..f1b2c07 --- /dev/null +++ b/parts/flags/aro.svg @@ -0,0 +1,47 @@ + + + + diff --git a/parts/flags/bi.svg b/parts/flags/bi.svg new file mode 100644 index 0000000..ecb99c0 --- /dev/null +++ b/parts/flags/bi.svg @@ -0,0 +1,45 @@ + + + + diff --git a/parts/flags/gay.svg b/parts/flags/gay.svg new file mode 100644 index 0000000..ef470f2 --- /dev/null +++ b/parts/flags/gay.svg @@ -0,0 +1,48 @@ + + + + diff --git a/parts/flags/genderqueer.svg b/parts/flags/genderqueer.svg new file mode 100644 index 0000000..a01ca6d --- /dev/null +++ b/parts/flags/genderqueer.svg @@ -0,0 +1,35 @@ + + + + diff --git a/parts/flags/lesbian.svg b/parts/flags/lesbian.svg new file mode 100644 index 0000000..30ee6b5 --- /dev/null +++ b/parts/flags/lesbian.svg @@ -0,0 +1,47 @@ + + + + diff --git a/parts/flags/lgbt.svg b/parts/flags/lgbt.svg new file mode 100644 index 0000000..0cf5527 --- /dev/null +++ b/parts/flags/lgbt.svg @@ -0,0 +1,35 @@ + + + + diff --git a/parts/flags/nb.svg b/parts/flags/nb.svg new file mode 100644 index 0000000..a0ad37d --- /dev/null +++ b/parts/flags/nb.svg @@ -0,0 +1,38 @@ + + + + diff --git a/parts/flags/pan.svg b/parts/flags/pan.svg new file mode 100644 index 0000000..457c0e8 --- /dev/null +++ b/parts/flags/pan.svg @@ -0,0 +1,36 @@ + + + + diff --git a/parts/flags/trans.svg b/parts/flags/trans.svg new file mode 100644 index 0000000..da1b548 --- /dev/null +++ b/parts/flags/trans.svg @@ -0,0 +1,46 @@ + + + + diff --git a/parts/front.svg b/parts/front.svg new file mode 100644 index 0000000..180f6bf --- /dev/null +++ b/parts/front.svg @@ -0,0 +1,72 @@ + + + + diff --git a/parts/plain/0.svg b/parts/plain/0.svg new file mode 100644 index 0000000..acf430a --- /dev/null +++ b/parts/plain/0.svg @@ -0,0 +1,49 @@ + + + +000 diff --git a/parts/plain/1.svg b/parts/plain/1.svg new file mode 100644 index 0000000..1489ad7 --- /dev/null +++ b/parts/plain/1.svg @@ -0,0 +1,49 @@ + + + +111 diff --git a/parts/plain/2.svg b/parts/plain/2.svg new file mode 100644 index 0000000..15c0e50 --- /dev/null +++ b/parts/plain/2.svg @@ -0,0 +1,49 @@ + + + +222 diff --git a/parts/plain/3.svg b/parts/plain/3.svg new file mode 100644 index 0000000..c5c761e --- /dev/null +++ b/parts/plain/3.svg @@ -0,0 +1,49 @@ + + + +333 diff --git a/parts/plain/4.svg b/parts/plain/4.svg new file mode 100644 index 0000000..8db6bc7 --- /dev/null +++ b/parts/plain/4.svg @@ -0,0 +1,49 @@ + + + +444 diff --git a/parts/plain/5.svg b/parts/plain/5.svg new file mode 100644 index 0000000..5922d76 --- /dev/null +++ b/parts/plain/5.svg @@ -0,0 +1,49 @@ + + + +555 diff --git a/parts/plain/6.svg b/parts/plain/6.svg new file mode 100644 index 0000000..2591cd3 --- /dev/null +++ b/parts/plain/6.svg @@ -0,0 +1,49 @@ + + + +6.6.6. diff --git a/parts/plain/7.svg b/parts/plain/7.svg new file mode 100644 index 0000000..07f2a8f --- /dev/null +++ b/parts/plain/7.svg @@ -0,0 +1,49 @@ + + + +777 diff --git a/parts/plain/8.svg b/parts/plain/8.svg new file mode 100644 index 0000000..11f73b8 --- /dev/null +++ b/parts/plain/8.svg @@ -0,0 +1,49 @@ + + + +888 diff --git a/parts/plain/9.svg b/parts/plain/9.svg new file mode 100644 index 0000000..643a34c --- /dev/null +++ b/parts/plain/9.svg @@ -0,0 +1,49 @@ + + + +9.9.9. diff --git a/parts/plain/assemble.sh b/parts/plain/assemble.sh new file mode 100755 index 0000000..c2f2dd8 --- /dev/null +++ b/parts/plain/assemble.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# requirements: awk,xq +flag="$1" +card="$2" + +# get svg file content +scriptdir=$(dirname $0) +base="$(cat $scriptdir/../flag-base/$flag.svg)" +overlay="$(cat $scriptdir/$card.svg)" + +# extract the svg dimensions from the xml using xq +base_box=$(echo "$base" | xq -a viewBox -q svg) +overlay_box=$(echo "$overlay" | xq -a viewBox -q svg) + +# calculate the overlay offset by subtracting +# the overlay witdth from the base width +# and the overlay height from the base height +off_x="$(echo $base_box $overlay_box | awk '{ print ($3 - $7)/2 }')" +off_y="$(echo $base_box $overlay_box | awk '{ print ($4 - $8)/2 }')" + +# get the inner svg from the overlay +ov="$(echo "$overlay" | xq -q 'svg' -n)" +# get the svg content from the base +bg="$(echo "$base" | xq -q 'svg' -n)" +# generate offset glu code to be inserted in the base +glu="$ov" + +echo "$bg" | sed 's/<\/svg>//' +echo "$glu" +echo "" diff --git a/parts/plain/reverse.svg b/parts/plain/reverse.svg new file mode 100644 index 0000000..d4df130 --- /dev/null +++ b/parts/plain/reverse.svg @@ -0,0 +1,144 @@ + + + +THE CLOSETBACK IN diff --git a/parts/plain/skip.svg b/parts/plain/skip.svg new file mode 100644 index 0000000..d4e3279 --- /dev/null +++ b/parts/plain/skip.svg @@ -0,0 +1,134 @@ + + + +BACKIN THE CLOSET diff --git a/parts/plain/take2.svg b/parts/plain/take2.svg new file mode 100644 index 0000000..0450d90 --- /dev/null +++ b/parts/plain/take2.svg @@ -0,0 +1,53 @@ + + + ++2+2+2 diff --git a/parts/special/assemble.sh b/parts/special/assemble.sh new file mode 100755 index 0000000..012c929 --- /dev/null +++ b/parts/special/assemble.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# requirements: awk,xq +card="$1" +flag1="$2" +flag2="$3" +flag3="$4" +flag4="$5" + +# get svg file content +scriptdir=$(dirname $0) +base="$(cat $scriptdir/$card.svg)" + +# extract the svg dimensions from the xml using xq +base_box=$(echo "$base" | xq -a viewBox -q svg) + +function gen_ov { + flag="$1" + opx="$2" + opy="$3" + + ov="$(cat $scriptdir/../flags/$flag.svg)" + box="$(echo "$ov" | xq -a viewBox -q svg)" + off_x="$(echo $base_box $box $opx | awk '{ print ($3/2 + $7*$9/2 - $7/2 + $7/16) }')" + off_y="$(echo $base_box $box $opy | awk '{ print ($4/2 + $8*$9/2 - $7/2 + $7/8) }')" + inner="$(echo "$ov" | xq -q 'svg' -n)" + echo "" + echo "$inner" + echo "" +} + +bg="$(echo "$base" | xq -q 'svg>g' -n)" +c1="$(gen_ov $flag1 '-1' '-1')" +c2="$(gen_ov $flag2 '1' '-1')" +c3="$(gen_ov $flag3 '-1' '1')" +c4="$(gen_ov $flag4 '1' '1')" + +# print svg to stdout +echo "$bg" | sed 's/<\/svg>//' +echo "$c1" +echo "$c2" +echo "$c3" +echo "$c4" +echo "" diff --git a/parts/special/take4.svg b/parts/special/take4.svg new file mode 100644 index 0000000..3adda7d --- /dev/null +++ b/parts/special/take4.svg @@ -0,0 +1,88 @@ + + + ++4+4HATEHATE diff --git a/parts/special/wild.svg b/parts/special/wild.svg new file mode 100644 index 0000000..fb35cd2 --- /dev/null +++ b/parts/special/wild.svg @@ -0,0 +1,58 @@ + + + +ComingOut -- 2.38.5