diff --git a/.gitignore b/.gitignore index b09796f..dab42dc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -original/ output/ -Cargo.lock -target/ -blobfox-*.zip -species/custom/ +.vscode/ +.frontmatter/ diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index d358b4f..0000000 --- a/Cargo.toml +++ /dev/null @@ -1,24 +0,0 @@ -[package] -name = "blobfox-template" -version = "0.1.0" -edition = "2021" -default-run = "blobfox-template" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde = { version = "1.0.140", features = ["derive"] } -toml = "0.5.9" -# Original repo is abandonned :( -# TODO: switch back to the official crate once https://github.com/eminence/xmltree-rs/pull/33 is merged -# xmltree = "0.10.3" -xmltree = { git = "https://github.com/MFEK/xmltree.rlib" } -mustache = { git = "https://git.shadamethyst.xyz/adri326/rust-mustache.git" } -clap = { version = "3.2", features = ["derive"] } -mkdirp = "1.0.0" -resvg = "0.23" -usvg = "0.23" -tiny-skia = "0.6" -png = "0.17" -css-color-parser = "0.1.2" -wax = "0.5.0" diff --git a/README.md b/README.md index 3cc3721..b3416d9 100644 --- a/README.md +++ b/README.md @@ -36,25 +36,22 @@ If you'd like to help, there are a few things that need attention outside of imp - vectorize high-value emotes (emotes which contain assets not present in others); the usual procedure is to copy the `blobfox.svg` file and to edit away, making sure not to move the body around - draw base emotes for other species: - - raccoon - - doberman - - german shepherd - - collie - - sheep - - bird - - etc. + - raccoon + - doberman + - german shepherd + - collie + - sheep + - bird + - etc. - clean up the SVG for the existing emotes (the `clean` binary in `feat/template` is meant to do the heavy-lifting) ### TODO -- set_stroke! -- blobfox_ohmy -- blobfox_trumpet -- blobfox_highfive -- googly eyes? -- tea/coffee -- sad -- uwu +- snuggles +- husky +- stella +- amber +- pride hearts ## License @@ -66,7 +63,7 @@ For simplicity, the authors of the different parts of this project have been gro - Feuerfuchs: [original website (down as of writing)](https://feuerfuchs.dev/), [archive](https://web.archive.org/web/20211115174913/https://www.feuerfuchs.dev/en/projects/blobfox-emojis/) - [LambdAurora](https://git.lambdaurora.dev/lambdaurora/), hosts [a mirror](https://git.lambdaurora.dev/lambdaurora/blobfox) - [Shad Amethyst](https://git.shadamethyst.xyz/adri326/) - +- Lost Quasar @@ -75,11 +72,12 @@ For simplicity, the authors of the different parts of this project have been gro Any contribution to the [original repository of this project](https://git.shadamethyst.xyz/adri326/blobfox) must be made available under the [license of this project](./LICENSE.txt). This means that: + - You must either be the author of the code/asset/image you wish to contribute, or have been given explicit permission by the original author to contribute it here. - Assets and images must be released under the Apache 2.0 license - If a contribution is derived from an asset or image, then this asset must also be released under the Apache 2.0 license - Ideally, contributions should contain a list of contributors, so that these can be added to the list of contributors -For svg files, please include the [svg-default-metadata.xml](./svg-default-metadata.xml) file in the svg file (and complete the blank fields). +For svg files, please include the [svg-default-metadata.xml](credits.svg) file in the svg file (and complete the blank fields). Don't hesitate to open an issue if you are unsure about any of the above points! diff --git a/assets/colors/arcticfox.yaml b/assets/colors/arcticfox.yaml new file mode 100644 index 0000000..4fa022c --- /dev/null +++ b/assets/colors/arcticfox.yaml @@ -0,0 +1,8 @@ +body_color: "eef2f4" +ear_color: "8599ad" +ear_fluff_color: "a0c7de" +hand_color: "eef2f4" +tail_color: "eef2f4" +marks_color: "eee64e" +sheen_color: "bfdef4" +hand_stroke_color: "8599ad" \ No newline at end of file diff --git a/assets/colors/cat.yaml b/assets/colors/cat.yaml new file mode 100644 index 0000000..ce17c47 --- /dev/null +++ b/assets/colors/cat.yaml @@ -0,0 +1,5 @@ +body_color: "fcc21b" +ear_color: "e9ae20" +ear_fluff_color: "8a6135" +hand_color: "fcc21b" +tail_color: "fcc21b" \ No newline at end of file diff --git a/assets/colors/fox.yaml b/assets/colors/fox.yaml new file mode 100644 index 0000000..fcf38ad --- /dev/null +++ b/assets/colors/fox.yaml @@ -0,0 +1,6 @@ +body_color: "ff8702" +ear_color: "313131" +ear_fluff_color: "ebdccc" +hand_color: "ff8702" +hand_stroke_color: "313131" +tail_color: "ff8702" diff --git a/assets/credits.svg b/assets/credits.svg new file mode 100644 index 0000000..b7e7fd7 --- /dev/null +++ b/assets/credits.svg @@ -0,0 +1,21 @@ + + + + + + + + Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License + + + + + + + + + https://git.shadamethyst.xyz/adri326/blobfox + + + + \ No newline at end of file diff --git a/assets/eyes/left/base.svg b/assets/eyes/left/base.svg new file mode 100644 index 0000000..c688088 --- /dev/null +++ b/assets/eyes/left/base.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/left/evil.svg b/assets/eyes/left/evil.svg new file mode 100644 index 0000000..533c4bc --- /dev/null +++ b/assets/eyes/left/evil.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/left/happy.svg b/assets/eyes/left/happy.svg new file mode 100644 index 0000000..d504e20 --- /dev/null +++ b/assets/eyes/left/happy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/left/small.svg b/assets/eyes/left/small.svg new file mode 100644 index 0000000..4bcabeb --- /dev/null +++ b/assets/eyes/left/small.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/eyes/left/squint.svg b/assets/eyes/left/squint.svg new file mode 100644 index 0000000..27a5a27 --- /dev/null +++ b/assets/eyes/left/squint.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/right/base.svg b/assets/eyes/right/base.svg new file mode 100644 index 0000000..7dd15ac --- /dev/null +++ b/assets/eyes/right/base.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/right/evil.svg b/assets/eyes/right/evil.svg new file mode 100644 index 0000000..2098272 --- /dev/null +++ b/assets/eyes/right/evil.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/right/happy.svg b/assets/eyes/right/happy.svg new file mode 100644 index 0000000..d7b5a8c --- /dev/null +++ b/assets/eyes/right/happy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/eyes/right/small.svg b/assets/eyes/right/small.svg new file mode 100644 index 0000000..365c0df --- /dev/null +++ b/assets/eyes/right/small.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/eyes/right/squint.svg b/assets/eyes/right/squint.svg new file mode 100644 index 0000000..5b4cdcd --- /dev/null +++ b/assets/eyes/right/squint.svg @@ -0,0 +1,4 @@ + + + + diff --git a/species/blobfox/assets/flag_ace.svg b/assets/flag/flag_ace.svg similarity index 100% rename from species/blobfox/assets/flag_ace.svg rename to assets/flag/flag_ace.svg diff --git a/species/blobfox/assets/flag_agender.svg b/assets/flag/flag_agender.svg similarity index 100% rename from species/blobfox/assets/flag_agender.svg rename to assets/flag/flag_agender.svg diff --git a/species/blobfox/assets/flag_demisexual.svg b/assets/flag/flag_demisexual.svg similarity index 100% rename from species/blobfox/assets/flag_demisexual.svg rename to assets/flag/flag_demisexual.svg diff --git a/species/blobfox/assets/flag_enby.svg b/assets/flag/flag_enby.svg similarity index 100% rename from species/blobfox/assets/flag_enby.svg rename to assets/flag/flag_enby.svg diff --git a/species/blobfox/assets/flag_pan.svg b/assets/flag/flag_pan.svg similarity index 100% rename from species/blobfox/assets/flag_pan.svg rename to assets/flag/flag_pan.svg diff --git a/species/blobfox/assets/flag_progress.svg b/assets/flag/flag_progress.svg similarity index 100% rename from species/blobfox/assets/flag_progress.svg rename to assets/flag/flag_progress.svg diff --git a/species/blobfox/assets/flag_trans.svg b/assets/flag/flag_trans.svg similarity index 100% rename from species/blobfox/assets/flag_trans.svg rename to assets/flag/flag_trans.svg diff --git a/species/blobarcticfox/assets/base.svg b/assets/fur/arcticfox/base.svg similarity index 55% rename from species/blobarcticfox/assets/base.svg rename to assets/fur/arcticfox/base.svg index 6403f7a..1ed9328 100644 --- a/species/blobarcticfox/assets/base.svg +++ b/assets/fur/arcticfox/base.svg @@ -1,13 +1,5 @@ - blobfox - - - - - @@ -16,34 +8,4 @@ - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - diff --git a/species/blobarcticfox/assets/snug.svg b/assets/fur/arcticfox/snug.svg similarity index 60% rename from species/blobarcticfox/assets/snug.svg rename to assets/fur/arcticfox/snug.svg index 4af5cd7..533c6bc 100644 --- a/species/blobarcticfox/assets/snug.svg +++ b/assets/fur/arcticfox/snug.svg @@ -1,15 +1,6 @@ - - blobarcticfox_snug - - - - - - + + @@ -18,33 +9,4 @@ - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobarcticfox_snug - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - diff --git a/species/blobcat/assets/base.svg b/assets/fur/cat/base.svg similarity index 52% rename from species/blobcat/assets/base.svg rename to assets/fur/cat/base.svg index ed1b8e9..97ca7a4 100644 --- a/species/blobcat/assets/base.svg +++ b/assets/fur/cat/base.svg @@ -1,16 +1,5 @@ - - blobcat - - - - - + @@ -18,30 +7,9 @@ - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobcat - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - + diff --git a/species/blobfox/assets/base.svg b/assets/fur/fox/base.svg similarity index 51% rename from species/blobfox/assets/base.svg rename to assets/fur/fox/base.svg index a1e3ef6..9cfc53f 100644 --- a/species/blobfox/assets/base.svg +++ b/assets/fur/fox/base.svg @@ -1,13 +1,5 @@ - - blobfox - - - - - + @@ -15,34 +7,4 @@ - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - diff --git a/species/blobfox/assets/snug.svg b/assets/fur/fox/snug.svg similarity index 62% rename from species/blobfox/assets/snug.svg rename to assets/fur/fox/snug.svg index 98213ca..acfa0d0 100644 --- a/species/blobfox/assets/snug.svg +++ b/assets/fur/fox/snug.svg @@ -1,14 +1,5 @@ - - blobfox_snug - - - - - + @@ -17,33 +8,4 @@ - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_snug - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - diff --git a/assets/hand/arcticfox/big_left.svg b/assets/hand/arcticfox/big_left.svg new file mode 100644 index 0000000..3384437 --- /dev/null +++ b/assets/hand/arcticfox/big_left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/arcticfox/big_right.svg b/assets/hand/arcticfox/big_right.svg new file mode 100644 index 0000000..3f6aeb3 --- /dev/null +++ b/assets/hand/arcticfox/big_right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/arcticfox/left.svg b/assets/hand/arcticfox/left.svg new file mode 100644 index 0000000..f3b94a2 --- /dev/null +++ b/assets/hand/arcticfox/left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/arcticfox/right.svg b/assets/hand/arcticfox/right.svg new file mode 100644 index 0000000..828dfae --- /dev/null +++ b/assets/hand/arcticfox/right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/cat/big_left.svg b/assets/hand/cat/big_left.svg new file mode 100644 index 0000000..4c4c915 --- /dev/null +++ b/assets/hand/cat/big_left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/cat/big_right.svg b/assets/hand/cat/big_right.svg new file mode 100644 index 0000000..084ddbc --- /dev/null +++ b/assets/hand/cat/big_right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/cat/left.svg b/assets/hand/cat/left.svg new file mode 100644 index 0000000..f310fc7 --- /dev/null +++ b/assets/hand/cat/left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/cat/right.svg b/assets/hand/cat/right.svg new file mode 100644 index 0000000..e40a39a --- /dev/null +++ b/assets/hand/cat/right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/fox/big_left.svg b/assets/hand/fox/big_left.svg new file mode 100644 index 0000000..5a4760f --- /dev/null +++ b/assets/hand/fox/big_left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/fox/big_right.svg b/assets/hand/fox/big_right.svg new file mode 100644 index 0000000..f2eea3b --- /dev/null +++ b/assets/hand/fox/big_right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/fox/left.svg b/assets/hand/fox/left.svg new file mode 100644 index 0000000..c16d93c --- /dev/null +++ b/assets/hand/fox/left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/hand/fox/right.svg b/assets/hand/fox/right.svg new file mode 100644 index 0000000..52d57fd --- /dev/null +++ b/assets/hand/fox/right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/holding/crowbar.svg b/assets/holding/crowbar.svg new file mode 100644 index 0000000..fbbd3bf --- /dev/null +++ b/assets/holding/crowbar.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/holding/cup.svg b/assets/holding/cup.svg new file mode 100644 index 0000000..c238f92 --- /dev/null +++ b/assets/holding/cup.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/holding/cup_liquid/coffee.svg b/assets/holding/cup_liquid/coffee.svg new file mode 100644 index 0000000..1f290ac --- /dev/null +++ b/assets/holding/cup_liquid/coffee.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/holding/cup_liquid/hot_coco.svg b/assets/holding/cup_liquid/hot_coco.svg new file mode 100644 index 0000000..b3a494a --- /dev/null +++ b/assets/holding/cup_liquid/hot_coco.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/holding/egg.svg b/assets/holding/egg.svg new file mode 100644 index 0000000..d38135b --- /dev/null +++ b/assets/holding/egg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/holding/heart.svg b/assets/holding/heart.svg new file mode 100644 index 0000000..067f2f0 --- /dev/null +++ b/assets/holding/heart.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/holding/knife.svg b/assets/holding/knife.svg new file mode 100644 index 0000000..8880ed7 --- /dev/null +++ b/assets/holding/knife.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/mouth/cat/w_mouth.svg b/assets/mouth/cat/w_mouth.svg new file mode 100644 index 0000000..03bb2dc --- /dev/null +++ b/assets/mouth/cat/w_mouth.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/mouth/fox/w_mouth.svg b/assets/mouth/fox/w_mouth.svg new file mode 100644 index 0000000..fd43ca8 --- /dev/null +++ b/assets/mouth/fox/w_mouth.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/nose/fox/base.svg b/assets/nose/fox/base.svg new file mode 100644 index 0000000..5ad7e47 --- /dev/null +++ b/assets/nose/fox/base.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/nose/fox/evil.svg b/assets/nose/fox/evil.svg new file mode 100644 index 0000000..b0995c1 --- /dev/null +++ b/assets/nose/fox/evil.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/nose/fox/happy.svg b/assets/nose/fox/happy.svg new file mode 100644 index 0000000..9f10d8f --- /dev/null +++ b/assets/nose/fox/happy.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/nose/fox/squint.svg b/assets/nose/fox/squint.svg new file mode 100644 index 0000000..c5f42f9 --- /dev/null +++ b/assets/nose/fox/squint.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/overlay/blanket.svg b/assets/overlay/blanket.svg new file mode 100644 index 0000000..06defa4 --- /dev/null +++ b/assets/overlay/blanket.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/overlay/blanket_ear/arcticfox.svg b/assets/overlay/blanket_ear/arcticfox.svg new file mode 100644 index 0000000..4fd286d --- /dev/null +++ b/assets/overlay/blanket_ear/arcticfox.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/overlay/blanket_ear/cat.svg b/assets/overlay/blanket_ear/cat.svg new file mode 100644 index 0000000..f9c2583 --- /dev/null +++ b/assets/overlay/blanket_ear/cat.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/overlay/blanket_ear/fox.svg b/assets/overlay/blanket_ear/fox.svg new file mode 100644 index 0000000..7eee6e2 --- /dev/null +++ b/assets/overlay/blanket_ear/fox.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/overlay/blush.svg b/assets/overlay/blush.svg new file mode 100644 index 0000000..380a3fb --- /dev/null +++ b/assets/overlay/blush.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/overlay/boop_hand.svg b/assets/overlay/boop_hand.svg new file mode 100644 index 0000000..6b1e49d --- /dev/null +++ b/assets/overlay/boop_hand.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/overlay/steam.svg b/assets/overlay/steam.svg new file mode 100644 index 0000000..8b1d9a5 --- /dev/null +++ b/assets/overlay/steam.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/overlay/zzz.svg b/assets/overlay/zzz.svg new file mode 100644 index 0000000..58e68db --- /dev/null +++ b/assets/overlay/zzz.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/blobfox.tar.gz b/blobfox.tar.gz deleted file mode 100755 index 1cbcd82..0000000 Binary files a/blobfox.tar.gz and /dev/null differ diff --git a/clean.sh b/clean.sh deleted file mode 100755 index 6698dca..0000000 --- a/clean.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cargo run --bin clean -- "$1" -xmllint "$1" --format --output "$1" diff --git a/custom/blobfox_approve.png b/custom/blobfox_approve.png deleted file mode 100644 index 6ae52f4..0000000 Binary files a/custom/blobfox_approve.png and /dev/null differ diff --git a/custom/blobfox_msnuggle_poly3.png b/custom/blobfox_msnuggle_poly3.png deleted file mode 100644 index 200080c..0000000 Binary files a/custom/blobfox_msnuggle_poly3.png and /dev/null differ diff --git a/custom/blobfox_plural.png b/custom/blobfox_plural.png deleted file mode 100644 index 1b4c4d9..0000000 Binary files a/custom/blobfox_plural.png and /dev/null differ diff --git a/custom/blobfox_pride.png b/custom/blobfox_pride.png deleted file mode 100644 index 7cef724..0000000 Binary files a/custom/blobfox_pride.png and /dev/null differ diff --git a/definitions.toml b/definitions.toml new file mode 100644 index 0000000..1d9f36d --- /dev/null +++ b/definitions.toml @@ -0,0 +1,4 @@ +coffee_cup = ["overlay/steam.svg","holding/cup.svg","holding/cup_liquid/coffee.svg"] +hot_coco_cup = ["overlay/steam.svg","holding/cup.svg","holding/cup_liquid/hot_coco.svg"] +arctic_base = ["fur/arcticfox/base.svg", "eyes/left/base.svg", "eyes/right/base.svg", "nose/fox/base.svg", "mouth/fox/w_mouth.svg"] +arctic_hand_right = ["hand/arcticfox/right.svg"] \ No newline at end of file diff --git a/designs.toml b/designs.toml new file mode 100644 index 0000000..bf0af77 --- /dev/null +++ b/designs.toml @@ -0,0 +1,2 @@ +arctic_hot_coco = ["arctic_base", "hot_coco_cup", "arctic_hand_right"] +arctic_coffee = ["arctic_base", "coffee_cup", "arctic_hand_right"] diff --git a/snuggle.toml b/snuggle.toml deleted file mode 100644 index 6c3575f..0000000 --- a/snuggle.toml +++ /dev/null @@ -1,63 +0,0 @@ -name = "snuggle" -dx = -90 -dy = -30 -bold = 12.0 - -# TODO: (medium) read from the species declaration and grab all the svgs with a given tag -# TODO: (low) generate the SVGs in-memory instead of reading them from the disk -[left] -blobfox = "blobfox_snuggle_left" -blobfox_blush = "blobfox_blush" -blobfox_happy = "blobfox_happy" -blobfox_aww = "blobfox_aww" - -blobhusky = "blobhusky_snuggle_left" -blobhusky_blush = "blobhusky_blush" -blobhusky_happy = "blobhusky_happy" -blobhusky_aww = "blobhusky_aww" - -blobcat = "blobcat_snuggle_left" -blobcat_blush = "blobcat_blush" -blobcat_happy = "blobcat_happy" -blobcat_aww = "blobcat_aww" - -blobstella = "blobstella_snuggle_left" -blobstella_blush = "blobstella_blush" -blobstella_happy = "blobstella_happy" -blobstella_aww = "blobstella_aww" - -blobarcticfox = "blobarcticfox_snuggle_left" -blobarcticfox_blush = "blobarcticfox_blush" -blobarcticfox_happy = "blobarcticfox_happy" -blobarcticfox_aww = "blobarcticfox_aww" - -[right] -blobfox = "blobfox_snuggle_right" -blobfox_blush = "blobfox_snuggle_right_blush" -blobfox_heart = "blobfox_snuggle_right_heart" -blobfox_blush_heart = "blobfox_snuggle_right_blush_heart" - -blobarcticfox = "blobarcticfox_snuggle_right" -blobarcticfox_blush = "blobarcticfox_snuggle_right_blush" -blobarcticfox_heart = "blobarcticfox_snuggle_right_heart" -blobarcticfox_blush_heart = "blobarcticfox_snuggle_right_blush_heart" - -blobhusky = "blobhusky_snuggle_right" -blobhusky_blush = "blobhusky_snuggle_right_blush" -blobhusky_heart = "blobhusky_snuggle_right_heart" -blobhusky_blush_heart = "blobhusky_snuggle_right_blush_heart" - -blobcat = "blobcat_snuggle_right" -blobcat_blush = "blobcat_snuggle_right_blush" -blobcat_heart = "blobcat_snuggle_right_heart" -blobcat_blush_heart = "blobcat_snuggle_right_blush_heart" - -blobamber = "blobamber_snuggle_right" -blobamber_blush = "blobamber_snuggle_right_blush" -blobamber_heart = "blobamber_snuggle_right_heart" -blobamber_blush_heart = "blobamber_snuggle_right_blush_heart" - -blobstella = "blobstella_snuggle_right" -blobstella_blush = "blobstella_snuggle_right_blush" -blobstella_heart = "blobstella_snuggle_right_heart" -blobstella_blush_heart = "blobstella_snuggle_right_blush_heart" diff --git a/species/blobamber/assets/base.svg b/species/blobamber/assets/base.svg deleted file mode 100644 index da558d2..0000000 --- a/species/blobamber/assets/base.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - blobcat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobcat - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - - diff --git a/species/blobamber/assets/owo.svg b/species/blobamber/assets/owo.svg deleted file mode 100644 index 846d084..0000000 --- a/species/blobamber/assets/owo.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/species/blobamber/species.toml b/species/blobamber/species.toml deleted file mode 100644 index 50ec5e4..0000000 --- a/species/blobamber/species.toml +++ /dev/null @@ -1,10 +0,0 @@ -name = "blobamber" -base = "../blobcat/" - -[vars] -body_color = "#6a6862" -ear_color = "#313131" -ear_fluff_color = "#474747" -hand_color = "#6a6862" -tail_color = "#6a6862" -marks_color = "#c8c8c8" diff --git a/species/blobamber/templates/body-basic.mustache b/species/blobamber/templates/body-basic.mustache deleted file mode 100644 index ad731ad..0000000 --- a/species/blobamber/templates/body-basic.mustache +++ /dev/null @@ -1,3 +0,0 @@ -{{>blobcat.body-basic}} - -{{#set-fill}} {{vars.marks_color}} | {{#base}}#belly{{/base}} {{/set-fill}} diff --git a/species/blobamber/templates/body-comfy.mustache b/species/blobamber/templates/body-comfy.mustache deleted file mode 100644 index 75d3d7a..0000000 --- a/species/blobamber/templates/body-comfy.mustache +++ /dev/null @@ -1,8 +0,0 @@ -{{>blobcat.body-comfy}} - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#belly{{/base}} - {{/set-fill}} - diff --git a/species/blobamber/templates/body-snuggle.mustache b/species/blobamber/templates/body-snuggle.mustache deleted file mode 100644 index e6540c9..0000000 --- a/species/blobamber/templates/body-snuggle.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>blobcat.body-snuggle}} - - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#belly{{/base}} - {{/set-fill}} - - diff --git a/species/blobamber/templates/eyes.mustache b/species/blobamber/templates/eyes.mustache deleted file mode 100644 index b9efa84..0000000 --- a/species/blobamber/templates/eyes.mustache +++ /dev/null @@ -1,14 +0,0 @@ - - -{{#blobamber.owo}}#blobamber-owo-defs{{/blobamber.owo}} -{{#blobamber.base}}#blobamber-defs{{/blobamber.base}} - -{{#tags.eyes-owo}} - - {{#owo}}#left-eye{{/owo}} - {{#owo}}#right-eye{{/owo}} - -{{/tags.eyes-owo}} -{{^tags.eyes-owo}} - {{>blobcat.eyes}} -{{/tags.eyes-owo}} diff --git a/species/blobamber/templates/hands.mustache b/species/blobamber/templates/hands.mustache deleted file mode 100644 index f733084..0000000 --- a/species/blobamber/templates/hands.mustache +++ /dev/null @@ -1,14 +0,0 @@ -{{#tags.hand-3c}} -{{#tags.holding}} - -{{/tags.holding}} -{{^tags.holding}} - -{{/tags.holding}} -{{/tags.hand-3c}} - -{{>blobcat.hands}} - -{{#tags.hand-3c}} - -{{/tags.hand-3c}} diff --git a/species/blobarcticfox/assets/snuggle_right.svg b/species/blobarcticfox/assets/snuggle_right.svg deleted file mode 100644 index d59afe1..0000000 --- a/species/blobarcticfox/assets/snuggle_right.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - blobarcticfox_snuggle_right - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobarcticfox_snuggle_right - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - - diff --git a/species/blobarcticfox/species.toml b/species/blobarcticfox/species.toml deleted file mode 100644 index 4b4124e..0000000 --- a/species/blobarcticfox/species.toml +++ /dev/null @@ -1,12 +0,0 @@ -name = "blobarcticfox" -base = "../blobfox" - -[vars] -body_color = "#eef2f4" -ear_color = "#8599ad" -ear_fluff_color = "#a0c7de" -hand_color = "#eef2f4" -tail_color = "#eef2f4" -marks_color = "#eee64e" -sheen_color = "#bfdef4" -hand_stroke_color = "#8599ad" diff --git a/species/blobarcticfox/templates/body-basic.mustache b/species/blobarcticfox/templates/body-basic.mustache deleted file mode 100644 index b2bc7f7..0000000 --- a/species/blobarcticfox/templates/body-basic.mustache +++ /dev/null @@ -1,22 +0,0 @@ -{{! Left ear }} -{{#tags.ear-owo}} - {{#set-fill}} {{vars.ear_fluff_color}} | {{#boop_owo}}#left-ear-fluff{{/boop_owo}} {{/set-fill}} - {{#set-fill}} {{vars.ear_color}} | {{#boop_owo}}#left-ear{{/boop_owo}} {{/set-fill}} -{{/tags.ear-owo}} -{{^tags.ear-owo}} - {{#set-fill}} {{vars.ear_color}} | {{#base}}#left-ear{{/base}} {{/set-fill}} -{{/tags.ear-owo}} - -{{! Body }} - - - {{#base}}#body{{/base}} - - -{{#base}}#body-sheen{{/base}} -{{#set-fill}} {{vars.body_color}} | {{#base}}#body{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#base}}#hair{{/base}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#base}}#right-ear{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#base}}#right-ear-fluff{{/base}} {{/set-fill}} diff --git a/species/blobarcticfox/templates/body-snug.mustache b/species/blobarcticfox/templates/body-snug.mustache deleted file mode 100644 index cee0335..0000000 --- a/species/blobarcticfox/templates/body-snug.mustache +++ /dev/null @@ -1,24 +0,0 @@ - - - - {{#snug}}#body{{/snug}} - - - - {{! TODO: owo ear }} - {{#set-fill}} {{vars.ear_color}} | {{#snug}}#left-ear{{/snug}} {{/set-fill}} - - {{! TODO: set-stroke }} - {{#snug}}#body-sheen{{/snug}} - {{#set-fill}} {{vars.body_color}} | {{#snug}}#body{{/snug}} {{/set-fill}} - {{#set-fill}} {{vars.body_color}} | {{#snug}}#hair{{/snug}} {{/set-fill}} - - {{#set-fill}} {{vars.ear_color}} | {{#snug}}#right-ear{{/snug}} {{/set-fill}} - {{#set-fill}} {{vars.ear_fluff_color}} | {{#snug}}#right-ear-fluff{{/snug}} {{/set-fill}} - - {{#tags.tail}} - - {{#set-fill}} {{vars.body_color}} | {{#snug}}#tail{{/snug}} {{/set-fill}} - - {{/tags.tail}} - diff --git a/species/blobarcticfox/templates/body-snuggle.mustache b/species/blobarcticfox/templates/body-snuggle.mustache deleted file mode 100644 index 156a12c..0000000 --- a/species/blobarcticfox/templates/body-snuggle.mustache +++ /dev/null @@ -1,16 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#left-ear{{/snuggle_right}} {{/set-fill}} - -{{! Body }} - - - {{#snuggle_right}}#body{{/snuggle_right}} - - -{{#set-fill}} {{vars.sheen_color}} | {{#snuggle_right}}#body-sheen{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#snuggle_right}}#body{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#snuggle_right}}#hair{{/snuggle_right}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#right-ear{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#snuggle_right}}#right-ear-fluff{{/snuggle_right}} {{/set-fill}} diff --git a/species/blobcat/assets/comfy.svg b/species/blobcat/assets/comfy.svg deleted file mode 100644 index 24d0417..0000000 --- a/species/blobcat/assets/comfy.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - blobcat_comfy - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobcat_comfy - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobcat/assets/snuggle_right.svg b/species/blobcat/assets/snuggle_right.svg deleted file mode 100644 index a76b618..0000000 --- a/species/blobcat/assets/snuggle_right.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - blobfox_snuggle_right - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_snuggle_right - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobcat/species.toml b/species/blobcat/species.toml deleted file mode 100644 index b712f45..0000000 --- a/species/blobcat/species.toml +++ /dev/null @@ -1,9 +0,0 @@ -name = "blobcat" -base = "../blobfox/" - -[vars] -body_color = "#fcc21b" -ear_color = "#e9ae20" -ear_fluff_color = "#8a6135" -hand_color = "#fcc21b" -tail_color = "#fcc21b" diff --git a/species/blobcat/templates/blush.mustache b/species/blobcat/templates/blush.mustache deleted file mode 100644 index eb247cc..0000000 --- a/species/blobcat/templates/blush.mustache +++ /dev/null @@ -1,14 +0,0 @@ -{{! Pull the defs from the svg for the gradients }} -{{#blush}}#blush-defs{{/blush}} - - - {{#blush}}#left-blush{{/blush}} - {{#blush}}#left-blush-line{{/blush}} - {{#blush}}#left-blush-line-2{{/blush}} - - - - {{#blush}}#right-blush{{/blush}} - {{#blush}}#right-blush-line{{/blush}} - {{#blush}}#right-blush-line-2{{/blush}} - diff --git a/species/blobcat/templates/body-basic.mustache b/species/blobcat/templates/body-basic.mustache deleted file mode 100644 index b11822a..0000000 --- a/species/blobcat/templates/body-basic.mustache +++ /dev/null @@ -1,20 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#base}}#left-ear{{/base}} {{/set-fill}} - -{{! Body }} - - - {{#base}}#body{{/base}} - - -{{#set-fill}} {{vars.body_color}} | {{#base}}#body{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#base}}#hair{{/base}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#base}}#right-ear{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#base}}#right-ear-fluff{{/base}} {{/set-fill}} - -{{! Whiskers }} -{{^tags.hands-reach}} - {{>whiskers}} -{{/tags.hands-reach}} diff --git a/species/blobcat/templates/body-comfy.mustache b/species/blobcat/templates/body-comfy.mustache deleted file mode 100644 index 7671e34..0000000 --- a/species/blobcat/templates/body-comfy.mustache +++ /dev/null @@ -1,3 +0,0 @@ -{{>blobfox.body-comfy}} - -{{>whiskers}} diff --git a/species/blobcat/templates/body-snug.mustache b/species/blobcat/templates/body-snug.mustache deleted file mode 100644 index b43dde5..0000000 --- a/species/blobcat/templates/body-snug.mustache +++ /dev/null @@ -1,23 +0,0 @@ - - - - {{#snug}}#body{{/snug}} - - - - - {{#set-fill}} {{vars.ear_color}} | {{#base}}#left-ear{{/base}} {{/set-fill}} - - - {{#set-fill}} - {{vars.body_color}} - | {{#snug}}#body{{/snug}} - {{/set-fill}} - - - {{#set-fill}} {{vars.ear_color}} | {{#base}}#right-ear{{/base}} {{/set-fill}} - {{#set-fill}} {{vars.ear_fluff_color}} | {{#base}}#right-ear-fluff{{/base}} {{/set-fill}} - - - {{>tail}} - diff --git a/species/blobcat/templates/body-snuggle.mustache b/species/blobcat/templates/body-snuggle.mustache deleted file mode 100644 index 0b204cf..0000000 --- a/species/blobcat/templates/body-snuggle.mustache +++ /dev/null @@ -1,18 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#left-ear{{/snuggle_right}} {{/set-fill}} - -{{! Body }} - - - {{#snuggle_right}}#body{{/snuggle_right}} - - -{{#set-fill}} {{vars.body_color}} | {{#snuggle_right}}#body{{/snuggle_right}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#right-ear{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#snuggle_right}}#right-ear-fluff{{/snuggle_right}} {{/set-fill}} - - - {{>whiskers}} - diff --git a/species/blobcat/templates/hand-boop.mustache b/species/blobcat/templates/hand-boop.mustache deleted file mode 100644 index 719360f..0000000 --- a/species/blobcat/templates/hand-boop.mustache +++ /dev/null @@ -1,3 +0,0 @@ - - {{>blobfox.hand-boop}} - diff --git a/species/blobcat/templates/hands.mustache b/species/blobcat/templates/hands.mustache deleted file mode 100644 index d4457ed..0000000 --- a/species/blobcat/templates/hands.mustache +++ /dev/null @@ -1,3 +0,0 @@ -{{#set-fill}} - {{vars.hand_color}} | {{>blobfox.hands}} -{{/set-fill}} diff --git a/species/blobcat/templates/mouth.mustache b/species/blobcat/templates/mouth.mustache deleted file mode 100644 index 8c75cd3..0000000 --- a/species/blobcat/templates/mouth.mustache +++ /dev/null @@ -1,13 +0,0 @@ -{{#tags.boop}} - -{{/tags.boop}} -{{#tags.mouth-hmpf}} - -{{/tags.mouth-hmpf}} - {{>blobfox.mouth}} -{{#tags.boop}} - -{{/tags.boop}} -{{#tags.mouth-hmpf}} - -{{/tags.mouth-hmpf}} diff --git a/species/blobcat/templates/nose.mustache b/species/blobcat/templates/nose.mustache deleted file mode 100644 index 73e3e4d..0000000 --- a/species/blobcat/templates/nose.mustache +++ /dev/null @@ -1,17 +0,0 @@ -{{#tags.body-snug}} - - {{#blobfox.base}}#nose{{/blobfox.base}} - -{{/tags.body-snug}} - -{{#tags.boop}} - - {{#blobfox.base}}#nose{{/blobfox.base}} - -{{/tags.boop}} - -{{#tags.mouth-hmpf}} - - {{#blobfox.base}}#nose{{/blobfox.base}} - -{{/tags.mouth-hmpf}} diff --git a/species/blobcat/templates/tail.mustache b/species/blobcat/templates/tail.mustache deleted file mode 100644 index 640f6fe..0000000 --- a/species/blobcat/templates/tail.mustache +++ /dev/null @@ -1,4 +0,0 @@ -{{#set-fill}} - {{vars.tail_color}} - | {{>blobfox.tail}} -{{/set-fill}} diff --git a/species/blobcat/templates/whiskers.mustache b/species/blobcat/templates/whiskers.mustache deleted file mode 100644 index f2bea3d..0000000 --- a/species/blobcat/templates/whiskers.mustache +++ /dev/null @@ -1,14 +0,0 @@ - -{{#tags.left-hand}}{{#tags.right-hand}}{{#tags.holding}} - -{{/tags.holding}}{{/tags.right-hand}}{{/tags.left-hand}} - - {{#base}}#left-whisker{{/base}} - {{#base}}#left-whisker-2{{/base}} - {{#base}}#right-whisker{{/base}} - {{#base}}#right-whisker-2{{/base}} - -{{#tags.left-hand}}{{#tags.right-hand}}{{#tags.holding}} - -{{/tags.holding}}{{/tags.right-hand}}{{/tags.left-hand}} - diff --git a/species/blobfox/assets/3c_evil.svg b/species/blobfox/assets/3c_evil.svg deleted file mode 100644 index 4993b63..0000000 --- a/species/blobfox/assets/3c_evil.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - blobfox_3c_evil - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_3c_evil - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/blush.svg b/species/blobfox/assets/blush.svg deleted file mode 100644 index ceaf1c4..0000000 --- a/species/blobfox/assets/blush.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - blobfox_blush - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_blush - https://git.shadamethyst.xyz/adri326/blobfox - - - Feuerfuchs - - - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/boop_owo.svg b/species/blobfox/assets/boop_owo.svg deleted file mode 100644 index 4e52aba..0000000 --- a/species/blobfox/assets/boop_owo.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - blobfox_boop_owo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_boop_owo - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/coffee.svg b/species/blobfox/assets/coffee.svg deleted file mode 100644 index 3844688..0000000 --- a/species/blobfox/assets/coffee.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - coffee - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - coffee - - - - diff --git a/species/blobfox/assets/comfy.svg b/species/blobfox/assets/comfy.svg deleted file mode 100644 index 7ca990f..0000000 --- a/species/blobfox/assets/comfy.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - blobfox_comfy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_comfy - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/crowbar.svg b/species/blobfox/assets/crowbar.svg deleted file mode 100644 index ec01bf7..0000000 --- a/species/blobfox/assets/crowbar.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - crowbar - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - crowbar - - - - diff --git a/species/blobfox/assets/egg.svg b/species/blobfox/assets/egg.svg deleted file mode 100644 index 7d80699..0000000 --- a/species/blobfox/assets/egg.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - blobfox_egg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_egg - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/heart.svg b/species/blobfox/assets/heart.svg deleted file mode 100644 index 0963cbb..0000000 --- a/species/blobfox/assets/heart.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - blobfox_heart - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_heart - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/knife.svg b/species/blobfox/assets/knife.svg deleted file mode 100644 index a1b7b29..0000000 --- a/species/blobfox/assets/knife.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - blobfox - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/reach_aww.svg b/species/blobfox/assets/reach_aww.svg deleted file mode 100644 index dc61a34..0000000 --- a/species/blobfox/assets/reach_aww.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - blobfox_reach_aww - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_reach_aww - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/snug_sleep.svg b/species/blobfox/assets/snug_sleep.svg deleted file mode 100644 index 9d31afd..0000000 --- a/species/blobfox/assets/snug_sleep.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - blobfox_snug - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_snug - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/assets/snuggle_right.svg b/species/blobfox/assets/snuggle_right.svg deleted file mode 100644 index 6a26c88..0000000 --- a/species/blobfox/assets/snuggle_right.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - blobfox_snuggle_right - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox_snuggle_right - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobfox/species.toml b/species/blobfox/species.toml deleted file mode 100644 index 539cda7..0000000 --- a/species/blobfox/species.toml +++ /dev/null @@ -1,66 +0,0 @@ -# Add options in here as needs be -name = "blobfox" - -[vars] -body_color = "#ff8702" -ear_color = "#313131" -ear_fluff_color = "#ebdccc" -hand_color = "#ff8702" -hand_stroke_color = "#313131" -tail_color = "#ff8702" - -[variants] -base = ["body-basic", "eyes-basic", "mouth-w"] -happy = ["body-basic", "eyes-happy", "mouth-w"] -evil = ["body-basic", "eyes-evil", "mouth-w"] -owo = ["body-basic", "ear-owo", "eyes-owo", "mouth-w"] -aww = ["body-basic", "eyes-aww", "mouth-w"] - -"3c" = ["body-basic", "eyes-basic", "mouth-w", "hand-3c", "left-hand"] -"3c_evil" = ["body-basic", "eyes-evil", "mouth-w", "hand-3c", "left-hand"] - -boop = ["body-basic", "boop", "eyes-basic", "mouth-w"] -boop_aww = ["body-basic", "boop", "eyes-aww", "mouth-w"] -boop_owo = ["body-basic", "ear-owo", "boop", "eyes-owo", "mouth-w"] - -reach = ["body-basic", "eyes-basic", "mouth-w", "hands-reach", "left-hand", "right-hand"] -reach_aww = ["body-basic", "eyes-aww", "mouth-w", "hands-reach", "left-hand", "right-hand"] -reach_owo = ["body-basic", "ear-owo", "eyes-owo", "mouth-w", "hands-reach", "left-hand", "right-hand"] - -snug = ["body-snug", "eyes-happy", "tail"] -snug_aww = ["body-snug", "eyes-aww", "tail"] -snug_owo = ["body-snug", "ear-owo", "eyes-owo", "tail"] -snug_boop_owo = ["body-snug", "ear-owo", "eyes-owo", "tail", "boop"] -snug_sleep = ["body-snug", "eyes-happy", "tail", "zzz"] - -comfy = ["body-comfy", "eyes-basic", "mouth-w"] -comfy_blush = ["body-comfy", "eyes-closed", "blush", "mouth-hmpf"] -comfy_evil = ["body-comfy", "eyes-evil", "mouth-w"] -comfy_happy = ["body-comfy", "eyes-happy", "mouth-w"] -comfy_aww = ["body-comfy", "eyes-aww", "mouth-w"] -comfy_boop = ["body-comfy", "boop", "eyes-basic", "mouth-w"] - -stabby = ["body-basic", "holding", "eyes-evil", "mouth-w", "hand-3c", "left-hand"] -gordon = ["body-basic", "holding", "eyes-basic", "mouth-w", "hand-3c", "left-hand"] - -coffee = ["body-basic", "holding", "eyes-basic", "mouth-w", "hand-cup", "right-hand"] -coffee_happy = ["body-basic", "holding", "eyes-happy", "mouth-w", "hand-cup", "right-hand"] - -blush = ["body-basic", "ear-blush", "eyes-closed", "blush", "mouth-hmpf"] - -heart = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -egg = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding"] - -# Flags -heart_progress = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -heart_enby = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -heart_ace = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -heart_demisexual = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -heart_pan = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -heart_trans = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] -heart_agender = ["body-basic", "eyes-basic", "left-hand", "right-hand", "holding", "big-object"] - -# Snuggle -snuggle_left = ["body-basic", "eyes-closed", "mouth-w"] -snuggle_right = ["body-snuggle", "eyes-snuggle", "mouth-w"] -snuggle_right_blush = ["body-snuggle", "eyes-snuggle", "mouth-w", "blush"] diff --git a/species/blobfox/templates/blush.mustache b/species/blobfox/templates/blush.mustache deleted file mode 100644 index 33212d1..0000000 --- a/species/blobfox/templates/blush.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{! Pull the defs from the svg for the gradients }} -{{#blush}}#blush-defs{{/blush}} - -{{#blush}}#right-blush{{/blush}} -{{#blush}}#right-blush-line{{/blush}} -{{#blush}}#right-blush-line-2{{/blush}} - -{{#blush}}#left-blush{{/blush}} -{{#blush}}#left-blush-line{{/blush}} -{{#blush}}#left-blush-line-2{{/blush}} diff --git a/species/blobfox/templates/body-basic.mustache b/species/blobfox/templates/body-basic.mustache deleted file mode 100644 index 56ea475..0000000 --- a/species/blobfox/templates/body-basic.mustache +++ /dev/null @@ -1,21 +0,0 @@ -{{! Left ear }} -{{#tags.ear-owo}} - {{#set-fill}} {{vars.ear_fluff_color}} | {{#boop_owo}}#left-ear-fluff{{/boop_owo}} {{/set-fill}} - {{#set-fill}} {{vars.ear_color}} | {{#boop_owo}}#left-ear{{/boop_owo}} {{/set-fill}} -{{/tags.ear-owo}} -{{^tags.ear-owo}} - {{#set-fill}} {{vars.ear_color}} | {{#base}}#left-ear{{/base}} {{/set-fill}} -{{/tags.ear-owo}} - -{{! Body }} - - - {{#base}}#body{{/base}} - - -{{#set-fill}} {{vars.body_color}} | {{#base}}#body{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#base}}#hair{{/base}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#base}}#right-ear{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#base}}#right-ear-fluff{{/base}} {{/set-fill}} diff --git a/species/blobfox/templates/body-comfy.mustache b/species/blobfox/templates/body-comfy.mustache deleted file mode 100644 index 1afe1dc..0000000 --- a/species/blobfox/templates/body-comfy.mustache +++ /dev/null @@ -1,18 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#comfy}}#left-ear{{/comfy}} {{/set-fill}} - -{{! Body }} - - - {{#comfy}}#body{{/comfy}} - - -{{#set-fill}} {{vars.body_color}} | {{#comfy}}#body{{/comfy}} {{/set-fill}} - -{{! Blanket }} -{{#comfy}}#blanket-line{{/comfy}} -{{#comfy}}#blanket{{/comfy}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#comfy}}#right-ear{{/comfy}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#comfy}}#right-ear-fluff{{/comfy}} {{/set-fill}} diff --git a/species/blobfox/templates/body-snug.mustache b/species/blobfox/templates/body-snug.mustache deleted file mode 100644 index 9639284..0000000 --- a/species/blobfox/templates/body-snug.mustache +++ /dev/null @@ -1,34 +0,0 @@ - - - - {{#snug}}#body{{/snug}} - - - - {{! TODO: owo ear }} - {{#set-fill}} {{vars.ear_color}} | {{#snug}}#left-ear{{/snug}} {{/set-fill}} - - {{#set-fill}} {{vars.body_color}} | {{#snug}}#body{{/snug}} {{/set-fill}} - {{#set-fill}} {{vars.body_color}} | {{#snug}}#hair{{/snug}} {{/set-fill}} - - {{#set-fill}} {{vars.ear_color}} | {{#snug}}#right-ear{{/snug}} {{/set-fill}} - {{#set-fill}} {{vars.ear_fluff_color}} | {{#snug}}#right-ear-fluff{{/snug}} {{/set-fill}} - - {{#tags.tail}} - {{>tail}} - {{/tags.tail}} - - - diff --git a/species/blobfox/templates/body-snuggle.mustache b/species/blobfox/templates/body-snuggle.mustache deleted file mode 100644 index 80811ba..0000000 --- a/species/blobfox/templates/body-snuggle.mustache +++ /dev/null @@ -1,15 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#left-ear{{/snuggle_right}} {{/set-fill}} - -{{! Body }} - - - {{#snuggle_right}}#body{{/snuggle_right}} - - -{{#set-fill}} {{vars.body_color}} | {{#snuggle_right}}#body{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#snuggle_right}}#hair{{/snuggle_right}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#right-ear{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#snuggle_right}}#right-ear-fluff{{/snuggle_right}} {{/set-fill}} diff --git a/species/blobfox/templates/body.mustache b/species/blobfox/templates/body.mustache deleted file mode 100644 index ca18fc8..0000000 --- a/species/blobfox/templates/body.mustache +++ /dev/null @@ -1,14 +0,0 @@ - - {{#tags.body-basic}} - {{>body-basic}} - {{/tags.body-basic}} - {{#tags.body-snug}} - {{>body-snug}} - {{/tags.body-snug}} - {{#tags.body-comfy}} - {{>body-comfy}} - {{/tags.body-comfy}} - {{#tags.body-snuggle}} - {{>body-snuggle}} - {{/tags.body-snuggle}} - diff --git a/species/blobfox/templates/coffee.mustache b/species/blobfox/templates/coffee.mustache deleted file mode 100644 index 4e43c60..0000000 --- a/species/blobfox/templates/coffee.mustache +++ /dev/null @@ -1,6 +0,0 @@ - - {{#coffee}}#smoke{{/coffee}} - {{#coffee}}#cup{{/coffee}} - {{#coffee}}#cup-handle{{/coffee}} - {{#coffee}}#liquid{{/coffee}} - diff --git a/species/blobfox/templates/crowbar.mustache b/species/blobfox/templates/crowbar.mustache deleted file mode 100644 index 6e6a7e0..0000000 --- a/species/blobfox/templates/crowbar.mustache +++ /dev/null @@ -1,6 +0,0 @@ - - {{#crowbar}}#crowbar-base{{/crowbar}} - {{#crowbar}}#crowbar-reflection{{/crowbar}} - {{#crowbar}}#crowbar-shadow{{/crowbar}} - {{#crowbar}}#crowbar-shadow-2{{/crowbar}} - diff --git a/species/blobfox/templates/eyes.mustache b/species/blobfox/templates/eyes.mustache deleted file mode 100644 index 214917b..0000000 --- a/species/blobfox/templates/eyes.mustache +++ /dev/null @@ -1,30 +0,0 @@ - - {{#tags.eyes-basic}} - {{#base}}#left-eye{{/base}} - {{#base}}#right-eye{{/base}} - {{/tags.eyes-basic}} - {{#tags.eyes-owo}} - {{#boop_owo}}#left-eye{{/boop_owo}} - {{#boop_owo}}#right-eye{{/boop_owo}} - {{/tags.eyes-owo}} - {{#tags.eyes-happy}} - {{#snug}}#left-eye{{/snug}} - {{#snug}}#right-eye{{/snug}} - {{/tags.eyes-happy}} - {{#tags.eyes-aww}} - {{#reach_aww}}#left-eye{{/reach_aww}} - {{#reach_aww}}#right-eye{{/reach_aww}} - {{/tags.eyes-aww}} - {{#tags.eyes-evil}} - {{#3c_evil}}#left-eye{{/3c_evil}} - {{#3c_evil}}#right-eye{{/3c_evil}} - {{/tags.eyes-evil}} - {{#tags.eyes-closed}} - {{#blush}}#left-eye{{/blush}} - {{#blush}}#right-eye{{/blush}} - {{/tags.eyes-closed}} - {{#tags.eyes-snuggle}} - {{#snuggle_right}}#left-eye{{/snuggle_right}} - {{#snuggle_right}}#right-eye{{/snuggle_right}} - {{/tags.eyes-snuggle}} - diff --git a/species/blobfox/templates/footer.mustache b/species/blobfox/templates/footer.mustache deleted file mode 100644 index c2667cb..0000000 --- a/species/blobfox/templates/footer.mustache +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/species/blobfox/templates/hand-boop.mustache b/species/blobfox/templates/hand-boop.mustache deleted file mode 100644 index 716d758..0000000 --- a/species/blobfox/templates/hand-boop.mustache +++ /dev/null @@ -1 +0,0 @@ -{{#boop_owo}}#hand-boop{{/boop_owo}} diff --git a/species/blobfox/templates/hands.mustache b/species/blobfox/templates/hands.mustache deleted file mode 100644 index 46468e8..0000000 --- a/species/blobfox/templates/hands.mustache +++ /dev/null @@ -1,62 +0,0 @@ - - {{#tags.hands-reach}} - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} - {{vars.hand_color}} - | {{#reach_aww}}#left-hand{{/reach_aww}} - {{/set-fill}} - {{/set-stroke}} - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} - {{vars.hand_color}} - | {{#reach_aww}}#right-hand{{/reach_aww}} - {{/set-fill}} - {{/set-stroke}} - {{/tags.hands-reach}} - - {{#tags.hand-3c}} - {{#tags.holding}} - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} {{vars.hand_color}} | {{#knife}}#left-hand{{/knife}} {{/set-fill}} - {{/set-stroke}} - {{/tags.holding}} - {{^tags.holding}} - {{! :3c hand }} - - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} {{vars.hand_color}} | {{#3c_evil}}#left-hand{{/3c_evil}} {{/set-fill}} - {{/set-stroke}} - {{/tags.holding}} - {{/tags.hand-3c}} - {{^tags.hand-3c}} - {{#tags.holding}} - {{#tags.left-hand}} - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} {{vars.hand_color}} | {{#heart}}#left-hand{{/heart}} {{/set-fill}} - {{/set-stroke}} - {{/tags.left-hand}} - - {{#tags.right-hand}} - {{#tags.hand-cup}} - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} {{vars.hand_color}} | {{#coffee}}#right-hand{{/coffee}} {{/set-fill}} - {{/set-stroke}} - {{/tags.hand-cup}} - {{^tags.hand-cup}} - {{#set-stroke}} - {{vars.hand_stroke_color}} | - {{#set-fill}} {{vars.hand_color}} | {{#heart}}#right-hand{{/heart}} {{/set-fill}} - {{/set-stroke}} - {{/tags.hand-cup}} - {{/tags.right-hand}} - {{/tags.holding}} - {{/tags.hand-3c}} - - - diff --git a/species/blobfox/templates/header.mustache b/species/blobfox/templates/header.mustache deleted file mode 100644 index 4ce388b..0000000 --- a/species/blobfox/templates/header.mustache +++ /dev/null @@ -1,9 +0,0 @@ - - {{variant_name}} - diff --git a/species/blobfox/templates/knife.mustache b/species/blobfox/templates/knife.mustache deleted file mode 100644 index 6f1dbe3..0000000 --- a/species/blobfox/templates/knife.mustache +++ /dev/null @@ -1,6 +0,0 @@ - - {{#knife}}#blade-back{{/knife}} - {{#knife}}#blade-front{{/knife}} - {{#knife}}#handle{{/knife}} - {{#knife}}#handle-screw{{/knife}} - diff --git a/species/blobfox/templates/mouth.mustache b/species/blobfox/templates/mouth.mustache deleted file mode 100644 index a1674b5..0000000 --- a/species/blobfox/templates/mouth.mustache +++ /dev/null @@ -1,6 +0,0 @@ -{{#tags.mouth-w}} - {{#base}}#mouth{{/base}} -{{/tags.mouth-w}} -{{#tags.mouth-hmpf}} - {{#blush}}#mouth{{/blush}} -{{/tags.mouth-hmpf}} diff --git a/species/blobfox/templates/nose.mustache b/species/blobfox/templates/nose.mustache deleted file mode 100644 index 2377355..0000000 --- a/species/blobfox/templates/nose.mustache +++ /dev/null @@ -1,25 +0,0 @@ - - {{#tags.eyes-basic}} - {{#base}}#nose-outline{{/base}} - {{/tags.eyes-basic}} - {{#tags.eyes-owo}} - {{#boop_owo}}#nose-outline{{/boop_owo}} - {{/tags.eyes-owo}} - {{#tags.eyes-aww}} - {{#reach_aww}}#nose-outline{{/reach_aww}} - {{/tags.eyes-aww}} - {{#tags.eyes-happy}} - {{#snug}}#nose-outline{{/snug}} - {{/tags.eyes-happy}} - {{#tags.eyes-evil}} - {{#3c_evil}}#nose-outline{{/3c_evil}} - {{/tags.eyes-evil}} - {{#tags.eyes-closed}} - {{#blush}}#nose-outline{{/blush}} - {{/tags.eyes-closed}} - {{#tags.eyes-snuggle}} - {{#snuggle_right}}#nose-outline{{/snuggle_right}} - {{/tags.eyes-snuggle}} - - {{#base}}#nose{{/base}} - diff --git a/species/blobfox/templates/tail.mustache b/species/blobfox/templates/tail.mustache deleted file mode 100644 index 5d21db4..0000000 --- a/species/blobfox/templates/tail.mustache +++ /dev/null @@ -1,3 +0,0 @@ - - {{#set-fill}} {{vars.tail_color}} | {{#snug}}#tail{{/snug}} {{/set-fill}} - diff --git a/species/blobfox/templates/zzz.mustache b/species/blobfox/templates/zzz.mustache deleted file mode 100644 index 5929654..0000000 --- a/species/blobfox/templates/zzz.mustache +++ /dev/null @@ -1,5 +0,0 @@ - - {{#snug_sleep}}#zzz-1{{/snug_sleep}} - {{#snug_sleep}}#zzz-2{{/snug_sleep}} - {{#snug_sleep}}#zzz-3{{/snug_sleep}} - diff --git a/species/blobfox/variants/3c.mustache b/species/blobfox/variants/3c.mustache deleted file mode 100644 index 4665694..0000000 --- a/species/blobfox/variants/3c.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/3c_evil.mustache b/species/blobfox/variants/3c_evil.mustache deleted file mode 100644 index 4665694..0000000 --- a/species/blobfox/variants/3c_evil.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/aww.mustache b/species/blobfox/variants/aww.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/aww.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/base.mustache b/species/blobfox/variants/base.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/base.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/blush.mustache b/species/blobfox/variants/blush.mustache deleted file mode 100644 index 4f0c58b..0000000 --- a/species/blobfox/variants/blush.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>blush}} -{{>footer}} diff --git a/species/blobfox/variants/boop.mustache b/species/blobfox/variants/boop.mustache deleted file mode 100644 index 153c9c3..0000000 --- a/species/blobfox/variants/boop.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hand-boop}} -{{>footer}} diff --git a/species/blobfox/variants/boop_aww.mustache b/species/blobfox/variants/boop_aww.mustache deleted file mode 100644 index 153c9c3..0000000 --- a/species/blobfox/variants/boop_aww.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hand-boop}} -{{>footer}} diff --git a/species/blobfox/variants/boop_owo.mustache b/species/blobfox/variants/boop_owo.mustache deleted file mode 100644 index 153c9c3..0000000 --- a/species/blobfox/variants/boop_owo.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hand-boop}} -{{>footer}} diff --git a/species/blobfox/variants/coffee.mustache b/species/blobfox/variants/coffee.mustache deleted file mode 100644 index 51723aa..0000000 --- a/species/blobfox/variants/coffee.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>coffee}} - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/coffee_happy.mustache b/species/blobfox/variants/coffee_happy.mustache deleted file mode 100644 index 51723aa..0000000 --- a/species/blobfox/variants/coffee_happy.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>coffee}} - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/comfy.mustache b/species/blobfox/variants/comfy.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/comfy.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/comfy_aww.mustache b/species/blobfox/variants/comfy_aww.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/comfy_aww.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/comfy_blush.mustache b/species/blobfox/variants/comfy_blush.mustache deleted file mode 100644 index 4f0c58b..0000000 --- a/species/blobfox/variants/comfy_blush.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>blush}} -{{>footer}} diff --git a/species/blobfox/variants/comfy_boop.mustache b/species/blobfox/variants/comfy_boop.mustache deleted file mode 100644 index 153c9c3..0000000 --- a/species/blobfox/variants/comfy_boop.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hand-boop}} -{{>footer}} diff --git a/species/blobfox/variants/comfy_evil.mustache b/species/blobfox/variants/comfy_evil.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/comfy_evil.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/comfy_happy.mustache b/species/blobfox/variants/comfy_happy.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/comfy_happy.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/egg.mustache b/species/blobfox/variants/egg.mustache deleted file mode 100644 index d0487e7..0000000 --- a/species/blobfox/variants/egg.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - {{#egg}}#egg{{/egg}} - {{#egg}}#egg-reflection{{/egg}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/evil.mustache b/species/blobfox/variants/evil.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/evil.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/gordon.mustache b/species/blobfox/variants/gordon.mustache deleted file mode 100644 index cedc49c..0000000 --- a/species/blobfox/variants/gordon.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>crowbar}} - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/happy.mustache b/species/blobfox/variants/happy.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/happy.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/heart.mustache b/species/blobfox/variants/heart.mustache deleted file mode 100644 index c32d417..0000000 --- a/species/blobfox/variants/heart.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - {{#heart}}#heart{{/heart}} - {{#heart}}#heart-reflection{{/heart}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_ace.mustache b/species/blobfox/variants/heart_ace.mustache deleted file mode 100644 index abf3d49..0000000 --- a/species/blobfox/variants/heart_ace.mustache +++ /dev/null @@ -1,25 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - - - {{#flag_ace}}{{/flag_ace}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_agender.mustache b/species/blobfox/variants/heart_agender.mustache deleted file mode 100644 index a6f52b1..0000000 --- a/species/blobfox/variants/heart_agender.mustache +++ /dev/null @@ -1,25 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - - - {{#flag_agender}}{{/flag_agender}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_demisexual.mustache b/species/blobfox/variants/heart_demisexual.mustache deleted file mode 100644 index fff4d22..0000000 --- a/species/blobfox/variants/heart_demisexual.mustache +++ /dev/null @@ -1,25 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - - - {{#flag_demisexual}}{{/flag_demisexual}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_enby.mustache b/species/blobfox/variants/heart_enby.mustache deleted file mode 100644 index 05c2eb4..0000000 --- a/species/blobfox/variants/heart_enby.mustache +++ /dev/null @@ -1,25 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - - - {{#flag_enby}}{{/flag_enby}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_pan.mustache b/species/blobfox/variants/heart_pan.mustache deleted file mode 100644 index db05a5e..0000000 --- a/species/blobfox/variants/heart_pan.mustache +++ /dev/null @@ -1,25 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - - - {{#flag_pan}}{{/flag_pan}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_progress.mustache b/species/blobfox/variants/heart_progress.mustache deleted file mode 100644 index ad45bdc..0000000 --- a/species/blobfox/variants/heart_progress.mustache +++ /dev/null @@ -1,26 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - {{! NOTE: The progress flag has a different aspect ratio compared to the other flags }} - - - {{#flag_progress}}{{/flag_progress}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/heart_trans.mustache b/species/blobfox/variants/heart_trans.mustache deleted file mode 100644 index b84abe7..0000000 --- a/species/blobfox/variants/heart_trans.mustache +++ /dev/null @@ -1,25 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - - - - {{#heart}}#heart{{/heart}} - - - - - {{#heart}}#heart{{/heart}} - - - - - {{#flag_trans}}{{/flag_trans}} - - - - {{#set-fill}} rgba(255,255,255,0.5) | {{#heart}}#heart-reflection{{/heart}} {{/set-fill}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/owo.mustache b/species/blobfox/variants/owo.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/owo.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/reach.mustache b/species/blobfox/variants/reach.mustache deleted file mode 100644 index 4665694..0000000 --- a/species/blobfox/variants/reach.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/reach_aww.mustache b/species/blobfox/variants/reach_aww.mustache deleted file mode 100644 index 4665694..0000000 --- a/species/blobfox/variants/reach_aww.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/reach_owo.mustache b/species/blobfox/variants/reach_owo.mustache deleted file mode 100644 index 4665694..0000000 --- a/species/blobfox/variants/reach_owo.mustache +++ /dev/null @@ -1,9 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>hands}} -{{>footer}} diff --git a/species/blobfox/variants/snug.mustache b/species/blobfox/variants/snug.mustache deleted file mode 100644 index b6d9c9e..0000000 --- a/species/blobfox/variants/snug.mustache +++ /dev/null @@ -1,6 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} -{{>footer}} diff --git a/species/blobfox/variants/snug_aww.mustache b/species/blobfox/variants/snug_aww.mustache deleted file mode 100644 index b6d9c9e..0000000 --- a/species/blobfox/variants/snug_aww.mustache +++ /dev/null @@ -1,6 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} -{{>footer}} diff --git a/species/blobfox/variants/snug_boop_owo.mustache b/species/blobfox/variants/snug_boop_owo.mustache deleted file mode 100644 index 7b06cd4..0000000 --- a/species/blobfox/variants/snug_boop_owo.mustache +++ /dev/null @@ -1,8 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - - {{>hand-boop}} -{{>footer}} diff --git a/species/blobfox/variants/snug_owo.mustache b/species/blobfox/variants/snug_owo.mustache deleted file mode 100644 index b6d9c9e..0000000 --- a/species/blobfox/variants/snug_owo.mustache +++ /dev/null @@ -1,6 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} -{{>footer}} diff --git a/species/blobfox/variants/snug_sleep.mustache b/species/blobfox/variants/snug_sleep.mustache deleted file mode 100644 index 0493c4e..0000000 --- a/species/blobfox/variants/snug_sleep.mustache +++ /dev/null @@ -1,8 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - - {{>zzz}} -{{>footer}} diff --git a/species/blobfox/variants/snuggle_left.mustache b/species/blobfox/variants/snuggle_left.mustache deleted file mode 100644 index be8b98b..0000000 --- a/species/blobfox/variants/snuggle_left.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} -{{>footer}} diff --git a/species/blobfox/variants/snuggle_right.mustache b/species/blobfox/variants/snuggle_right.mustache deleted file mode 100644 index 18d23bb..0000000 --- a/species/blobfox/variants/snuggle_right.mustache +++ /dev/null @@ -1,11 +0,0 @@ -{{>header}} - {{>body}} - - - {{>eyes}} - {{>nose}} - {{>mouth}} - - - {{#snuggle_right}}#heart{{/snuggle_right}} -{{>footer}} diff --git a/species/blobfox/variants/snuggle_right_blush.mustache b/species/blobfox/variants/snuggle_right_blush.mustache deleted file mode 100644 index 3b401c5..0000000 --- a/species/blobfox/variants/snuggle_right_blush.mustache +++ /dev/null @@ -1,12 +0,0 @@ -{{>header}} - {{>body}} - - - {{>eyes}} - {{>nose}} - {{>mouth}} - {{>blush}} - - - {{#snuggle_right}}#heart{{/snuggle_right}} -{{>footer}} diff --git a/species/blobfox/variants/stabby.mustache b/species/blobfox/variants/stabby.mustache deleted file mode 100644 index 699f4ec..0000000 --- a/species/blobfox/variants/stabby.mustache +++ /dev/null @@ -1,10 +0,0 @@ -{{>header}} - {{>body}} - - {{>eyes}} - {{>nose}} - {{>mouth}} - - {{>knife}} - {{>hands}} -{{>footer}} diff --git a/species/blobhusky/assets/base.svg b/species/blobhusky/assets/base.svg deleted file mode 100644 index 0fdcc85..0000000 --- a/species/blobhusky/assets/base.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - blobhusky - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobhusky - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobhusky/assets/snuggle_right.svg b/species/blobhusky/assets/snuggle_right.svg deleted file mode 100644 index 7fddd34..0000000 --- a/species/blobhusky/assets/snuggle_right.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - blobhusky_snuggle_right - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobhusky_snuggle_right - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/species/blobhusky/species.toml b/species/blobhusky/species.toml deleted file mode 100644 index ff110d0..0000000 --- a/species/blobhusky/species.toml +++ /dev/null @@ -1,10 +0,0 @@ -name = "blobhusky" -base = "../blobfox/" - -[vars] -body_color = "#6b6b6f" -ear_color = "#313131" -ear_fluff_color = "#e1e1e3" -hand_color = "#e1e1e3" -tail_color = "#e1e1e3" -marks_color = "#e1e1e3" diff --git a/species/blobhusky/templates/body-basic.mustache b/species/blobhusky/templates/body-basic.mustache deleted file mode 100644 index f439e81..0000000 --- a/species/blobhusky/templates/body-basic.mustache +++ /dev/null @@ -1,5 +0,0 @@ -{{>blobfox.body-basic}} - - - {{#set-fill}} {{vars.marks_color}} | {{#base}}#marks{{/base}} {{/set-fill}} - diff --git a/species/blobhusky/templates/body-comfy.mustache b/species/blobhusky/templates/body-comfy.mustache deleted file mode 100644 index 8ed1112..0000000 --- a/species/blobhusky/templates/body-comfy.mustache +++ /dev/null @@ -1,7 +0,0 @@ -{{>blobfox.body-comfy}} - - - - {{#set-fill}} {{vars.marks_color}} | {{#base}}#marks{{/base}} {{/set-fill}} - - diff --git a/species/blobhusky/templates/body-snug.mustache b/species/blobhusky/templates/body-snug.mustache deleted file mode 100644 index 285cfad..0000000 --- a/species/blobhusky/templates/body-snug.mustache +++ /dev/null @@ -1,28 +0,0 @@ - - - - {{#snug}}#body{{/snug}} - - - - {{! TODO: owo ear }} - {{#set-fill}} {{vars.ear_color}} | {{#snug}}#left-ear{{/snug}} {{/set-fill}} - - {{#set-fill}} {{vars.body_color}} | {{#snug}}#body{{/snug}} {{/set-fill}} - {{#set-fill}} {{vars.body_color}} | {{#snug}}#hair{{/snug}} {{/set-fill}} - - {{#set-fill}} {{vars.ear_color}} | {{#snug}}#right-ear{{/snug}} {{/set-fill}} - {{#set-fill}} {{vars.ear_fluff_color}} | {{#snug}}#right-ear-fluff{{/snug}} {{/set-fill}} - - - - {{#set-fill}} {{vars.marks_color}} | {{#base}}#marks{{/base}} {{/set-fill}} - - - - {{#tags.tail}} - - {{#set-fill}} {{vars.tail_color}} | {{#snug}}#tail{{/snug}} {{/set-fill}} - - {{/tags.tail}} - diff --git a/species/blobhusky/templates/body-snuggle.mustache b/species/blobhusky/templates/body-snuggle.mustache deleted file mode 100644 index d10b1fa..0000000 --- a/species/blobhusky/templates/body-snuggle.mustache +++ /dev/null @@ -1,5 +0,0 @@ -{{>blobfox.body-snuggle}} - - - {{#set-fill}} {{vars.marks_color}} | {{#snuggle_right}}#marks{{/snuggle_right}} {{/set-fill}} - diff --git a/species/blobstella/assets/base.svg b/species/blobstella/assets/base.svg deleted file mode 100644 index 1c7fcd2..0000000 --- a/species/blobstella/assets/base.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - blobcat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobcat - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - - diff --git a/species/blobstella/assets/flag_pan.svg b/species/blobstella/assets/flag_pan.svg deleted file mode 100644 index ea27db9..0000000 --- a/species/blobstella/assets/flag_pan.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/species/blobstella/species.toml b/species/blobstella/species.toml deleted file mode 100644 index 9a4ba0f..0000000 --- a/species/blobstella/species.toml +++ /dev/null @@ -1,10 +0,0 @@ -name = "blobstella" -base = "../blobcat/" - -[vars] -body_color = "#54b6e7" -ear_color = "#3398c7" -ear_fluff_color = "#224f66" -hand_color = "#54b6e7" -tail_color = "#54b6e7" -marks_color = "#eee64e" diff --git a/species/blobstella/templates/body-basic.mustache b/species/blobstella/templates/body-basic.mustache deleted file mode 100644 index 128eee0..0000000 --- a/species/blobstella/templates/body-basic.mustache +++ /dev/null @@ -1,32 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#base}}#left-ear{{/base}} {{/set-fill}} - -{{! Body }} - - - {{#base}}#body{{/base}} - - -{{#set-fill}} {{vars.body_color}} | {{#base}}#body{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.body_color}} | {{#base}}#hair{{/base}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#base}}#right-ear{{/base}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#base}}#right-ear-fluff{{/base}} {{/set-fill}} - -{{! Marks }} - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#left-marks{{/base}} - {{/set-fill}} - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#right-marks{{/base}} - {{/set-fill}} - - -{{! Whiskers }} -{{^tags.hands-reach}} - {{>whiskers}} -{{/tags.hands-reach}} diff --git a/species/blobstella/templates/body-comfy.mustache b/species/blobstella/templates/body-comfy.mustache deleted file mode 100644 index cf590a0..0000000 --- a/species/blobstella/templates/body-comfy.mustache +++ /dev/null @@ -1,18 +0,0 @@ -{{>blobfox.body-comfy}} - - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#left-marks{{/base}} - {{/set-fill}} - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#right-marks{{/base}} - {{/set-fill}} - - - -{{>whiskers}} diff --git a/species/blobstella/templates/body-snug.mustache b/species/blobstella/templates/body-snug.mustache deleted file mode 100644 index bb260f0..0000000 --- a/species/blobstella/templates/body-snug.mustache +++ /dev/null @@ -1,14 +0,0 @@ -{{>blobcat.body-snug}} - - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#left-marks{{/base}} - {{/set-fill}} - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#right-marks{{/base}} - {{/set-fill}} - - diff --git a/species/blobstella/templates/body-snuggle.mustache b/species/blobstella/templates/body-snuggle.mustache deleted file mode 100644 index 9353992..0000000 --- a/species/blobstella/templates/body-snuggle.mustache +++ /dev/null @@ -1,33 +0,0 @@ -{{! Left ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#left-ear{{/snuggle_right}} {{/set-fill}} - -{{! Body }} - - - {{#snuggle_right}}#body{{/snuggle_right}} - - -{{#set-fill}} {{vars.body_color}} | {{#snuggle_right}}#body{{/snuggle_right}} {{/set-fill}} - -{{! Right ear }} -{{#set-fill}} {{vars.ear_color}} | {{#snuggle_right}}#right-ear{{/snuggle_right}} {{/set-fill}} -{{#set-fill}} {{vars.ear_fluff_color}} | {{#snuggle_right}}#right-ear-fluff{{/snuggle_right}} {{/set-fill}} - - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#left-marks{{/base}} - {{/set-fill}} - - - {{#set-fill}} - {{vars.marks_color}} - | {{#base}}#right-marks{{/base}} - {{/set-fill}} - - - - - {{>whiskers}} - diff --git a/src/bin/clean.rs b/src/bin/clean.rs deleted file mode 100644 index f66d7f5..0000000 --- a/src/bin/clean.rs +++ /dev/null @@ -1,70 +0,0 @@ -use xmltree::{XMLNode, Element}; -use clap::Parser; -use std::collections::HashMap; -use std::path::PathBuf; - -/// Replaces meaningless `id`s given by inkscape with the `inkscape:label` of the elements -fn main() { - let args = Args::parse(); - - for path in args.files { - let file = std::fs::File::open(path.clone()).unwrap_or_else(|err| { - panic!("Error while reading {}: {}", path.display(), err); - }); - let mut element = Element::parse(file).expect("Couldn't parse SVG!"); - - clean(&mut element); - - let mut s: Vec = Vec::new(); - element.write(&mut s).expect("Couldn't export SVG!"); - - std::fs::write(path.clone(), s).unwrap_or_else(|err| { - panic!("Error while writing {}: {}", path.display(), err); - }); - } -} - -fn clean(element: &mut Element) { - let mut counts: HashMap = HashMap::new(); - - fn count_rec(element: &Element, counts: &mut HashMap) { - if let Some(label) = element.attributes.get("label") { - if let Some(count) = counts.get_mut(label) { - *count += 1; - } else { - counts.insert(label.to_string(), 1); - } - } - - for child in element.children.iter() { - if let XMLNode::Element(ref child) = child { - count_rec(child, counts); - } - } - } - - count_rec(element, &mut counts); - - fn update_rec(element: &mut Element, counts: &HashMap) { - if let Some(label) = element.attributes.get("label") { - if let Some(1) = counts.get(label) { - element.attributes.insert("id".to_string(), label.to_string()); - } - } - - for child in element.children.iter_mut() { - if let XMLNode::Element(ref mut child) = child { - update_rec(child, counts); - } - } - } - - update_rec(element, &counts); -} - -#[derive(Parser)] -#[clap(author, version, about, long_about = None)] -struct Args { - #[clap(value_parser)] - files: Vec, -} diff --git a/src/bin/rescale.rs b/src/bin/rescale.rs deleted file mode 100644 index d99b988..0000000 --- a/src/bin/rescale.rs +++ /dev/null @@ -1,310 +0,0 @@ -use clap::Parser; -use std::fmt::Write; -use std::path::PathBuf; -use xmltree::{Element, XMLNode}; - -/// Scales everything (as best as it can) to a different user unit, without breaking the semantics -fn main() { - let args = Args::parse(); - - if args.input == args.output { - println!("Warning: you should **not** set `output` to the same file as `input`, as this program may very well break your svg!"); - } - - let file = std::fs::File::open(&args.input).unwrap_or_else(|err| { - panic!("Error while reading {}: {}", args.input.display(), err); - }); - let mut element = Element::parse(file).expect("Couldn't parse SVG!"); - - let view_box = get_viewbox(&element); - - let scale = if let Some(width) = args.width { - width / view_box.2 - } else if let Some(height) = args.height { - height / view_box.3 - } else { - panic!("Expected either width or height as arguments"); - }; - - rescale(&mut element, scale); - - *element.attributes.get_mut("viewBox").unwrap() = format!( - "{} {} {} {}", - view_box.0 * scale, - view_box.1 * scale, - view_box.2 * scale, - view_box.3 * scale, - ); - - let mut s: Vec = Vec::new(); - element.write(&mut s).expect("Couldn't export SVG!"); - std::fs::write(&args.output, s).unwrap_or_else(|err| { - panic!("Error while writing {}: {}", args.output.display(), err); - }); -} - -fn get_viewbox(element: &Element) -> (f64, f64, f64, f64) { - let view_box = element - .attributes - .get("viewBox") - .expect("missing viewBox attribute on svg"); - let view_box: Vec = view_box - .split(" ") - .filter(|s| !s.is_empty()) - .map(|s| s.parse().unwrap()) - .collect(); - - if view_box.len() != 4 { - panic!( - "Parse error: expected viewBox to be four space-separated numbers, got {} numbers", - view_box.len() - ); - } - - (view_box[0], view_box[1], view_box[2], view_box[3]) -} - -fn rescale(element: &mut Element, scale: f64) { - if element.name == "path" { - if let Some(path) = element.attributes.get_mut("d") { - let mut new_path = String::new(); - for instruction in path.split_whitespace() { - if let [Ok(left), Ok(right)] = instruction - .split(',') - .map(|s| s.parse::()) - .collect::>()[..] - { - write!(&mut new_path, "{},{} ", left * scale, right * scale).unwrap(); - } else if let Ok(number) = instruction.parse::() { - write!(&mut new_path, "{} ", number * scale).unwrap(); - } else { - write!(&mut new_path, "{} ", instruction).unwrap(); - } - } - *path = new_path; - } - } else if element.name == "image" { - if let Some(width) = element.attributes.get_mut("width") { - if let Ok(parsed) = width.parse::() { - *width = (parsed * scale).to_string(); - } - } - if let Some(height) = element.attributes.get_mut("height") { - if let Ok(parsed) = height.parse::() { - *height = (parsed * scale).to_string(); - } - } - } else if element.name == "namedview" { - if let Some(units) = element.attributes.get_mut("document-units") { - *units = "px".to_string(); - } - } else if - element.name == "ellipse" - || element.name == "radialGradient" - || element.name == "linearGradient" - || element.name == "rect" - { - const PROPS: [&'static str; 15] = [ - "cx", - "cy", - "rx", - "ry", - "fx", - "fy", - "r", - "x1", - "x2", - "y1", - "y2", - "x", - "y", - "width", - "height", - ]; - - for prop in PROPS { - if let Some(attr) = element.attributes.get_mut(prop) { - if let Ok(parsed) = attr.parse::() { - *attr = (parsed * scale).to_string(); - } - } - } - } else if element.name == "polygon" { - if let Some(points) = element.attributes.get_mut("points") { - let new_points = points.split_whitespace().map(|pair| { - let parsed = pair.split(',').map(|x| x.parse::()).collect::>(); - if let [Ok(x), Ok(y)] = parsed[..] { - format!("{},{}", x * scale, y * scale) - } else if let [Ok(z)] = parsed[..] { - format!("{}", z * scale) - } else { - pair.to_string() - } - }).collect::>().join(" "); - - *points = new_points; - } - } - - if let Some(style) = element.attributes.get_mut("style") { - let mut new_style = String::new(); - for instruction in style.split(';') { - match instruction.split(':').map(|x| x.trim()).collect::>()[..] { - ["stroke-width", width] => { - let (width, unit): (String, String) = - width.chars().partition(|x| !x.is_ascii_alphabetic()); - let width = width.parse::().unwrap(); - - write!(&mut new_style, "stroke-width: {}{};", width * scale, unit).unwrap(); - } - ref any => write!(&mut new_style, "{};", any.join(":")).unwrap(), - } - } - *style = new_style; - } - - // TODO: replace with Option::or if and when Polonius - // or another successor to the current borrow-checker gets merged - let mut transform = element.attributes.get_mut("transform"); - if transform.is_none() { - transform = element.attributes.get_mut("gradientTransform"); - } - - if let Some(transform) = transform { - let mut new_transform = String::new(); - - for (instruction, args) in parse_transform(transform) { - match instruction.trim() { - "rotate" => { - let parsed: Vec = args - .split(|c| matches!(c, ' ' | ',')) - .filter(|s| !s.is_empty()) - .map(|x| x.parse().unwrap()) - .collect(); - if parsed.len() == 3 { - write!( - &mut new_transform, - "rotate({} {} {})", - parsed[0], - parsed[1] * scale, - parsed[2] * scale - ) - .unwrap(); - } else { - write!(&mut new_transform, "rotate({})", args).unwrap(); - } - } - "translate" => { - let parsed: Vec = args - .split(|c| matches!(c, ' ' | ',')) - .filter(|s| !s.is_empty()) - .map(|x| x.parse().unwrap()) - .collect(); - if parsed.len() == 2 { - write!( - &mut new_transform, - "translate({} {})", - parsed[0] * scale, - parsed[1] * scale - ) - .unwrap(); - } else { - write!(&mut new_transform, "translate({})", args).unwrap(); - } - } - "matrix" => { - let parsed: Vec = args - .split(|c| matches!(c, ' ' | ',')) - .filter(|s| !s.is_empty()) - .map(|x| x.parse().unwrap()) - .collect(); - if parsed.len() == 6 { - write!( - &mut new_transform, - "matrix({} {} {} {} {} {})", - parsed[0], - parsed[1], - parsed[2], - parsed[3], - parsed[4] * scale, - parsed[5] * scale, - ) - .unwrap(); - } else { - write!(&mut new_transform, "matrix({})", args).unwrap(); - } - } - _ => { - write!(&mut new_transform, "{}({})", instruction, args).unwrap(); - } - } - new_transform.push(' '); - } - - // TODO: transform-origin - - *transform = new_transform; - } - - for child in element.children.iter_mut() { - if let XMLNode::Element(ref mut child) = child { - rescale(child, scale); - } - } -} - -fn parse_transform(raw: &str) -> Vec<(String, String)> { - let mut res: Vec<(String, String)> = Vec::new(); - let mut instruction = String::new(); - let mut args = String::new(); - let mut depth = 0; - - for c in raw.chars() { - if c == '(' { - depth += 1; - if depth > 1 { - args.push(c); - } - } else if c == ')' { - depth -= 1; - assert!(depth >= 0); - if depth >= 1 { - args.push(c); - } - } else if c == ' ' { - if depth == 0 { - let instruction = std::mem::take(&mut instruction); - let args = std::mem::take(&mut args); - res.push((instruction, args)); - } else { - args.push(c); - } - } else { - if depth == 0 { - instruction.push(c); - } else { - args.push(c); - } - } - } - - res.push((instruction, args)); - - res -} - -#[derive(Parser)] -#[clap(author, version, about, long_about = None)] -struct Args { - #[clap(value_parser)] - input: PathBuf, - - #[clap(value_parser)] - output: PathBuf, - - #[clap(short, long, value_parser)] - width: Option, - - #[clap(short, long, value_parser)] - height: Option, -} diff --git a/src/bin/snuggle.rs b/src/bin/snuggle.rs deleted file mode 100644 index 59d9d43..0000000 --- a/src/bin/snuggle.rs +++ /dev/null @@ -1,238 +0,0 @@ -//! Very crude tool for generating snuggle emotes -use clap::Parser; -use std::fmt::Write; -use std::path::PathBuf; -use std::collections::HashMap; -use serde::{Serialize, Deserialize}; -use xmltree::{Element, XMLNode}; -use wax::{Glob, Pattern}; - -use blobfox_template::{ - parse, - template, - export, -}; - -#[derive(Serialize, Deserialize, Debug)] -struct Desc { - /// Name of the snuggle emote (eg. `snuggle`, `nom`) - name: String, - - /// How much to move the "left" emote by, horizontally - dx: f64, - /// How much to move the "left" emote by, vertically - dy: f64, - /// How much to scale the "left" emote by, unimplemented! - scale: Option, - - /// How much of a margin to add to the "right" emote, in SVG units - bold: f64, - - /// Optional transform to add to the "right" emote cutout - #[serde(default)] - transform: String, - - /// name/filename list of emotes for the "left" emotes - left: HashMap, - /// name/filename list of emotes for the "right" emotes - right: HashMap, -} - -#[derive(Parser, Clone)] -#[clap(author, version, about, long_about = None)] -struct Args { - /// Path to the description - #[clap(short, long, value_parser)] - desc: PathBuf, - - /// Disable automatically resizing the SVG's viewBox, defaults to false - #[clap(short, long, value_parser, default_value = "false")] - no_resize: bool, - - /// Dimension to export the images as; can be specified multiple times - #[clap(long, value_parser)] - dim: Vec, - - /// Input directory, containing the svgs to combine - #[clap(short, long, value_parser)] - input_dir: Option, - - /// Output directory - #[clap(short, long, value_parser)] - output_dir: Option, - - /// A glob to filter which emotes to output; supports wildcards, like `blobfox_snuggle*` - #[clap(value_parser)] - glob: Option, -} - -impl From for export::ExportArgs { - fn from(args: Args) -> export::ExportArgs { - export::ExportArgs { - no_resize: args.no_resize, - dim: args.dim, - } - } -} - -fn main() { - let args = Args::parse(); - let input_dir = args.input_dir.clone().unwrap_or(PathBuf::from("output/vector/")); - let output_dir = args.output_dir.clone().unwrap_or(PathBuf::from("output/")); - - let files = std::fs::read_dir(&input_dir).unwrap_or_else(|err| { - panic!("Couldn't read directory {}: {}", input_dir.display(), err); - }).filter_map(|entry| { - std::fs::read_dir(entry.ok()?.path()).ok() - }).flatten().filter_map(|entry| { - let entry = entry.ok()?; - Some((entry.path().file_stem()?.to_str()?.to_string(), entry.path())) - }).collect::>(); - - let desc = std::fs::read_to_string(&args.desc).unwrap_or_else(|err| { - panic!("Couldn't open {}: {}", args.desc.display(), err); - }); - let desc: Desc = toml::from_str(&desc).unwrap(); - - let export_args: export::ExportArgs = args.clone().into(); - - let glob = args.glob.as_ref().map(|s| Glob::new(s).expect("Invalid parameter glob")); - - for (left_name, left_path) in desc.left.iter() { - if let Some(left_path) = files.get(left_path) { - let left = std::fs::read_to_string(left_path).unwrap_or_else(|err| { - panic!("Couldn't open {}: {}", left_path.display(), err); - }); - - for (right_name, right_path) in desc.right.iter() { - if let Some(right_path) = files.get(right_path) { - let name = format!("{}_{}_{}", left_name, desc.name, right_name); - if let Some(ref glob) = &glob { - if !glob.is_match(&*name) { - continue // Skip this emote - } - } - - let right = std::fs::read_to_string(&right_path).unwrap_or_else(|err| { - panic!("Couldn't open {}: {}", right_path.display(), err); - }); - - let snuggle = generate_snuggle(&left, &right, &desc); - let snuggle = export::xml_to_str(&snuggle).unwrap(); - - export::export( - snuggle, - &output_dir, - &desc.name, - &name, - &export_args - ).unwrap(); - } - } - } - } -} - -fn generate_snuggle(left: &str, right: &str, desc: &Desc) -> Element { - let left_usvg = export::get_usvg(&left).unwrap(); - let left_bbox = left_usvg.svg_node().view_box.rect; - - // == Generate mask == - let mut mask = Element::new("mask"); - mask.attributes.insert("id".to_string(), "snuggle-mask".to_string()); - - let mut rect = Element::new("rect"); - rect.attributes.insert("fill".to_string(), "white".to_string()); - // TODO: use scale? - rect.attributes.insert("x".to_string(), (desc.dx + left_bbox.x()).to_string()); - rect.attributes.insert("y".to_string(), (desc.dy + left_bbox.y()).to_string()); - rect.attributes.insert("width".to_string(), left_bbox.width().to_string()); - rect.attributes.insert("height".to_string(), left_bbox.height().to_string()); - - mask.children.push(XMLNode::Element(rect)); - - let mut right_mask = Element::new("g"); - right_mask.attributes.insert("transform".to_string(), desc.transform.clone()); - - let mut right_xml = Element::parse(right.as_bytes()).unwrap(); - bolden(desc.bold, &mut right_xml); - template::set_fill("#000000", &mut right_xml); - template::set_stroke("#000000", &mut right_xml); - - for child in right_xml.children { - if let XMLNode::Element(child) = child { - right_mask.children.push(XMLNode::Element(child)); - } - } - - mask.children.push(XMLNode::Element(right_mask)); - - // == Insert both emotes == - let mut right_xml = Element::parse(right.as_bytes()).unwrap(); - let left_xml = Element::parse(left.as_bytes()).unwrap(); - - let mut left_group = Element::new("g"); - left_group.attributes.insert("transform".to_string(), format!( - "translate({} {})", - desc.dx, - desc.dy - )); - left_group.children = left_xml.children; - - let mut left_group2 = Element::new("g"); - left_group2.attributes.insert("mask".to_string(), "url(#snuggle-mask)".to_string()); - left_group2.children.push(XMLNode::Element(left_group)); - - // == Fill in root element == - let mut res = Element::new("svg"); - res.attributes.insert("xmlns".to_string(), "http://www.w3.org/2000/svg".to_string()); - res.attributes.insert("version".to_string(), "1.1".to_string()); - res.attributes.insert("width".to_string(), "128".to_string()); - res.attributes.insert("height".to_string(), "128".to_string()); - res.children.push(XMLNode::Element(mask)); - res.children.append(&mut right_xml.children); - res.children.push(XMLNode::Element(left_group2)); - - res -} - -/// Increases the `stroke-width` of any drawn element by `amount`. -/// If the element has no stroke but has a filling, then it is considered to have a zero stroke width -fn bolden(amount: f64, xml: &mut Element) { - if let Some(stroke_width) = xml.attributes.get_mut("stroke-width") { - if let Ok(parsed) = stroke_width.parse::() { - *stroke_width = format!("{}", parsed + amount); - } - } else if xml.attributes.contains_key("fill") { - xml.attributes.insert("stroke-width".to_string(), amount.to_string()); - } - - if let Some(style) = xml.attributes.get_mut("style") { - let mut new_style = String::new(); - let mut stroke_width = None; - for (name, value) in parse::parse_css(style) { - if name == "stroke-width" { - stroke_width = value.parse::().ok(); - continue - } - - if name == "fill" && stroke_width.is_none() { - stroke_width = Some(0.0); - } - - write!(&mut new_style, "{}:{};", name, value).unwrap(); - } - - if let Some(stroke_width) = stroke_width { - write!(&mut new_style, "stroke-width: {};", stroke_width + amount).unwrap(); - } - - *style = new_style; - } - - for child in xml.children.iter_mut() { - if let XMLNode::Element(ref mut child) = child { - bolden(amount, child); - } - } -} diff --git a/src/export.rs b/src/export.rs deleted file mode 100644 index f6442f5..0000000 --- a/src/export.rs +++ /dev/null @@ -1,223 +0,0 @@ -use usvg::{ - Tree, - NodeExt, - Options, -}; -use xmltree::{XMLNode, Element}; -use std::path::{PathBuf}; -use std::collections::HashSet; - -#[derive(Debug)] -pub enum ExportError { - Xml(xmltree::Error), - XmlParse(xmltree::ParseError), - Usvg(usvg::Error), - Io(PathBuf, std::io::Error), - NoBBox, - Utf8(std::string::FromUtf8Error), - Encode(png::EncodingError), -} - -impl From for ExportError { - fn from(err: xmltree::ParseError) -> Self { - Self::XmlParse(err) - } -} - -impl From for ExportError { - fn from(err: xmltree::Error) -> Self { - Self::Xml(err) - } -} - -impl From for ExportError { - fn from(err: usvg::Error) -> Self { - Self::Usvg(err) - } -} - -impl From for ExportError { - fn from(err: std::string::FromUtf8Error) -> Self { - Self::Utf8(err) - } -} - -impl From for ExportError { - fn from(err: png::EncodingError) -> Self { - Self::Encode(err) - } -} - -pub struct ExportArgs { - pub no_resize: bool, - pub dim: Vec, -} - -pub fn get_usvg(svg_str: &str) -> Result { - let usvg_options = Options::default(); - Tree::from_str(svg_str, &usvg_options.to_ref()) -} - -pub fn get_xml(svg_str: &str) -> Result { - Element::parse(svg_str.as_bytes()) -} - -pub fn xml_to_str(svg_xml: &Element) -> Result { - let mut s: Vec = Vec::new(); - - svg_xml.write(&mut s)?; - - Ok(String::from_utf8(s)?) -} - -fn get_new_bbox(svg: &Tree) -> Option<(f64, f64, f64, f64)> { - let bbox = svg.root().calculate_bbox()?; - - // FIXME: remove once https://github.com/RazrFalcon/resvg/issues/528 is fixed - const MARGIN: f64 = 2.0; - - let x = bbox.x() - MARGIN; - let y = bbox.y() - MARGIN; - let width = bbox.width() + MARGIN * 2.0; - let height = bbox.height() + MARGIN * 2.0; - - if width > height { - let y = y - (width - height) / 2.0; - - Some((x, y, width, width)) - } else { - let x = x - (height - width) / 2.0; - - Some((x, y, height, height)) - } -} - -/// Removes all elements marked with `blobfox-ignore-size="true"` - -macro_rules! strip { - ( $name:tt, $attribute:expr ) => { - fn $name(svg_str: &str) -> Result { - let mut xml = get_xml(svg_str)?; - - fn rec(element: &mut Element) { - // TODO: replace with Vec::drain_filter once https://github.com/rust-lang/rust/issues/43244 gets merged - for child in std::mem::take(&mut element.children) { - match child { - XMLNode::Element(mut child) => { - if let Some("true") = child.attributes.get($attribute).map(|s| s.as_str()) { - continue - } - - rec(&mut child); - - element.children.push(XMLNode::Element(child)); - } - child => element.children.push(child), - } - } - } - - rec(&mut xml); - - xml_to_str(&xml) - } - } -} - -strip!(strip_ignore_size, "blobfox-ignore-size"); -strip!(strip_only_size, "blobfox-only-size"); - -pub fn resize(svg_str: String) -> Result { - let stripped = strip_ignore_size(&svg_str)?; - - if let Some(new_bbox) = get_new_bbox(&get_usvg(&stripped)?) { - let mut svg_xml = get_xml(&svg_str)?; - svg_xml.attributes.insert( - "viewBox".to_string(), - format!("{} {} {} {}", new_bbox.0, new_bbox.1, new_bbox.2, new_bbox.3), - ); - - xml_to_str(&svg_xml) - } else { - Err(ExportError::NoBBox) - } -} - -/// Finds all the `` in the svg and combines them all into one -pub fn combine_defs(svg_str: String) -> Result { - let mut svg_xml = get_xml(&svg_str)?; - - let mut defs = Vec::new(); - - fn collect_defs(element: &mut Element, defs: &mut Vec) { - for child in std::mem::take(&mut element.children) { - match child { - XMLNode::Element(child) if child.name == "defs" => { - defs.push(child); - } - mut child => { - if let XMLNode::Element(ref mut child) = &mut child { - collect_defs(child, defs); - } - element.children.push(child); - } - } - } - } - - collect_defs(&mut svg_xml, &mut defs); - - let mut defs_element = Element::new("defs"); - defs_element.children = defs - .into_iter() - .map(|def| { - def.children.into_iter().filter(|child| matches!(child, XMLNode::Element(_))) - }) - .flatten() - .collect::>(); - defs_element.attributes.insert("id".to_string(), "defs".to_string()); - - svg_xml.children.insert(0, XMLNode::Element(defs_element)); - - xml_to_str(&svg_xml) -} - -pub fn export( - mut svg_str: String, - output_dir: &PathBuf, - species_name: &str, - output_name: &str, - args: &ExportArgs, -) -> Result<(), ExportError> { - if !args.no_resize { - svg_str = resize(svg_str)?; - } - - svg_str = strip_only_size(&svg_str)?; - - svg_str = combine_defs(svg_str)?; - - mkdirp::mkdirp(output_dir.join(format!("vector/{}", species_name))).unwrap(); - - let output = output_dir.join(&format!("vector/{}/{}.svg", species_name, output_name)); - std::fs::write(output.clone(), svg_str.clone()).map_err(|err| ExportError::Io(output, err))?; - - let svg_usvg = get_usvg(&svg_str)?; - for resolution in args.dim.iter().copied().filter(|r| *r != 0).collect::>() { - mkdirp::mkdirp(output_dir.join(&format!("{}/{}", resolution, species_name))).unwrap(); - let output = output_dir.join(&format!("{}/{}/{}.png", resolution, species_name, output_name)); - - let mut image = tiny_skia::Pixmap::new(resolution, resolution).unwrap(); - - resvg::render( - &svg_usvg, - usvg::FitTo::Width(resolution), - tiny_skia::Transform::identity(), - image.as_mut() - ).unwrap(); - - image.save_png(output)?; - } - - Ok(()) -} diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 6a4f2b2..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod parse; -pub mod template; -pub mod export; diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..957cbe5 --- /dev/null +++ b/src/main.py @@ -0,0 +1,29 @@ +from svgutils.compose import * +from cairosvg import svg2png +import toml + +CONFIG["svg.file_path"] = "../assets/" + + +with open("../definitions.toml", "r") as def_file: + definitions = toml.loads(def_file.read()) +with open("../designs.toml", "r") as design_file: + designs = toml.loads(design_file.read()) + +partsList = [] +for key in designs: + currentDesign = designs[key] + for part in currentDesign: + for url in definitions[part]: + partsList.append(url) + svg_parts = [] + for part in partsList: + svg_parts.append(SVG(part)) + Figure( + "128", + "128", + *svg_parts, + SVG("credits.svg") + ).save("../output/vector/"+key+".svg") + svg2png(url="../output/vector/"+key+".svg", write_to="../output/512/"+key+".png", output_width=512) +print("Done!") \ No newline at end of file diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index b3bd418..0000000 --- a/src/main.rs +++ /dev/null @@ -1,90 +0,0 @@ -use clap::Parser; -use std::path::PathBuf; - -use blobfox_template::{ - parse::*, - template::*, - export::*, -}; - -fn main() { - let args = Args::parse(); - - let species = load_species(args.decl.clone()).unwrap(); - let context = RenderingContext::new(species); - - let output_dir = args.output_dir.clone().unwrap_or(PathBuf::from("output/")); - - if args.names.is_empty() { - for name in context.species().variant_paths.keys() { - generate_variant(&context, name, &output_dir, &args); - } - } else { - for name in args.names.iter() { - generate_variant(&context, name, &output_dir, &args); - } - } -} - -fn generate_variant(context: &RenderingContext, name: &str, output_dir: &PathBuf, args: &Args) { - let args: ExportArgs = args.clone().into(); - - if let Some(path) = context.species().variant_paths.get(name) { - match context.compile(path).and_then(|template| { - template.render_data_to_string(&context.get_data(name)) - }) { - Ok(svg) => { - match export( - svg, - output_dir, - &context.species().name, - &format!("{}_{}", context.species().name, name), - &args - ) { - Ok(_) => {} - Err(err) => { - eprintln!("Error while rendering {}: {:?}", name, err); - } - } - } - Err(err) => { - eprintln!("Error while rendering {}: {}", name, err); - } - } - } else { - eprintln!("No variant named {}!", name); - } -} - -#[derive(Parser, Debug, Clone)] -#[clap(author, version, about, long_about = None)] -pub struct Args { - /// A folder containing the declaration from which the emotes should be generated - #[clap(short, long, value_parser)] - decl: PathBuf, - - /// List of the emote names to export - #[clap(value_parser)] - names: Vec, - - /// Disable automatically resizing the SVG's viewBox, defaults to false - #[clap(short, long, value_parser, default_value = "false")] - no_resize: bool, - - /// Dimension to export the images as; can be specified multiple times - #[clap(long, value_parser)] - dim: Vec, - - /// Output directory - #[clap(short, long, value_parser)] - output_dir: Option, -} - -impl From for ExportArgs { - fn from(args: Args) -> ExportArgs { - ExportArgs { - no_resize: args.no_resize, - dim: args.dim, - } - } -} diff --git a/src/parse.rs b/src/parse.rs deleted file mode 100644 index f744d6a..0000000 --- a/src/parse.rs +++ /dev/null @@ -1,143 +0,0 @@ -use xmltree::{Element}; -use serde::{Serialize, Deserialize}; -use std::path::{PathBuf, Path}; -use std::collections::HashMap; - -/// Error returned upon failing to parse something -#[derive(Debug)] -pub enum ParseError { - Io(PathBuf, std::io::Error), - XmlParse(xmltree::ParseError), - Toml(toml::de::Error), -} - -impl From for ParseError { - fn from(err: xmltree::ParseError) -> Self { - Self::XmlParse(err) - } -} - -impl From for ParseError { - fn from(err: toml::de::Error) -> Self { - Self::Toml(err) - } -} - -#[derive(Serialize, Deserialize, Debug)] -pub struct SpeciesDecl { - /// Imports xml and svg files from this folder if they aren't found - pub base: Option, - - /// The name of the species - pub name: String, - - #[serde(default)] - pub variants: HashMap>, - - #[serde(default)] - pub vars: HashMap, - - #[serde(skip)] - pub template_paths: HashMap, - - #[serde(skip)] - pub variant_paths: HashMap, - - #[serde(skip)] - pub asset_paths: HashMap, - - #[serde(skip)] - pub parent: Option>, -} - -/// Loads the given file as an XML tree -pub fn load_xml(path: impl AsRef) -> Result { - let file = std::fs::File::open(path.as_ref()).map_err(|err| { - ParseError::Io(path.as_ref().to_path_buf(), err) - })?; - - Ok(Element::parse(file)?) -} - -/// Loads the basic description of a SpeciesDecl -pub fn load_species(path: impl AsRef) -> Result { - let declaration_path = path.as_ref().join("species.toml"); - let declaration = std::fs::read_to_string(&declaration_path).map_err(|err| { - ParseError::Io(declaration_path, err) - })?; - - let mut res: SpeciesDecl = toml::from_str(&declaration)?; - - if let Some(ref base) = &res.base { - let path = path.as_ref().to_path_buf().join(base); - let base = load_species(path)?; - - res.template_paths = base.template_paths.clone(); - res.variant_paths = base.variant_paths.clone(); - res.asset_paths = base.asset_paths.clone(); - res.variants = base.variants.clone(); - for (key, value) in base.vars.iter() { - if !res.vars.contains_key(key) { - res.vars.insert(key.clone(), value.clone()); - } - } - res.parent = Some(Box::new(base)); - } - - // Read the `templates` directory and populate the `template_paths` field; - // on error, ignore the directory. - for (name, path) in read_dir_xml(path.as_ref().join("templates")) { - res.template_paths.insert(name, path); - } - - // Read the `variants` directory - for (name, path) in read_dir_xml(path.as_ref().join("variants")) { - res.variant_paths.insert(name, path); - } - - // Read the `assets` directory - for (name, path) in read_dir_xml(path.as_ref().join("assets")) { - res.asset_paths.insert(name, path); - } - - Ok(res) -} - -fn read_dir_xml(path: impl AsRef) -> HashMap { - let mut res = HashMap::new(); - - if let Ok(iter) = std::fs::read_dir(path) { - for entry in iter.filter_map(|x| x.ok()) { - match (entry.path().file_stem(), entry.path().extension()) { - (Some(name), Some(ext)) => { - if matches!(ext.to_str(), Some("xml") | Some("svg") | Some("mustache")) { - if let Some(name) = name.to_str() { - res.insert( - name.to_string(), - entry.path().to_path_buf() - ); - } - } - } - _ => {} - } - } - } - - res -} - -pub fn parse_css<'b>(css: &'b str) -> impl Iterator + 'b { - css.split(';').filter_map(|rule| { - let mut iter = rule.splitn(2, ':'); - if let Some(name) = iter.next() { - if let Some(value) = iter.next() { - Some((name.trim(), value)) - } else { - None - } - } else { - None - } - }) -} diff --git a/src/template.rs b/src/template.rs deleted file mode 100644 index 8b121a8..0000000 --- a/src/template.rs +++ /dev/null @@ -1,331 +0,0 @@ -use crate::parse::{SpeciesDecl, parse_css}; -use mustache::{Context, Data, MapBuilder, PartialLoader, Template}; -use std::collections::HashMap; -use std::path::Path; -use std::sync::{Arc, Mutex}; -use xmltree::{Element, XMLNode}; -use css_color_parser::Color as CssColor; - -#[derive(Debug, Clone)] -pub struct RenderingContext { - species: Arc, - - rendered_variants: Arc>>, - - loaded_assets: Arc>>, - - parent: Option>, -} - -impl RenderingContext { - pub fn new(mut species: SpeciesDecl) -> Self { - let parent = std::mem::take(&mut species.parent).map(|parent| { - Box::new(Self::new(*parent)) - }); - - Self { - species: Arc::new(species), - rendered_variants: Arc::new(Mutex::new(HashMap::new())), - loaded_assets: Arc::new(Mutex::new(HashMap::new())), - parent - } - } - - pub fn compile(&self, path: impl AsRef) -> Result, mustache::Error> { - let template = std::fs::read_to_string(path)?; - Context::with_loader(self.clone()).compile(template.chars()) - } - - fn render_to_string( - &self, - string: &str, - variant_name: &str, - ) -> Result { - Context::with_loader(self.clone()) - .compile(string.chars())? - .render_data_to_string(&self.get_data(variant_name)) - } - - pub fn get_data(&self, variant_name: &str) -> Data { - self.get_builder(variant_name, true).build() - } - - fn get_builder(&self, variant_name: &str, include_parent: bool) -> MapBuilder { - let mut builder = MapBuilder::new(); - - builder = builder.insert_map("variant", |mut builder| { - for variant_name in self.species.variant_paths.keys() { - let this = self.clone(); - let variant_name = variant_name.to_string(); - builder = builder.insert_fn(variant_name.clone(), move |selector| { - let svg = this.get_variant(&variant_name); - if let Some(svg) = svg { - if let Some(element) = query_selector(svg, &selector) { - if let Some(string) = xml_to_string(element) { - return string; - } - } - } - - String::new() - }) - } - builder - }); - - for asset_name in self.species.asset_paths.keys() { - let this = self.clone(); - let asset_name = asset_name.to_string(); - - builder = builder.insert_fn(asset_name.clone(), move |selector| { - let svg = this.get_asset(&asset_name); - if let Some(svg) = svg { - if let Some(element) = query_selector(svg, &selector) { - if let Some(string) = xml_to_string(element) { - return string; - } - } - } - - String::new() - }); - } - - for (cb, name) in [ - (set_fill as fn(&str, &mut Element), "set-fill"), - (set_stroke, "set-stroke") - ] { - let this = self.clone(); - let variant_name_owned = variant_name.to_string(); - - builder = builder.insert_fn(name, move |input| { - // Parse `color|xml` - if let [color, xml] = input.splitn(2, '|').collect::>()[..] { - // Render `color` and `xml` - if let (Ok(color), Ok(xml)) = ( - this.render_to_string(&color, &variant_name_owned), - this.render_to_string(&xml, &variant_name_owned), - ) { - // Convert `xml` to XML - match Element::parse(xml.as_bytes()) { - Ok(mut xml) => { - cb(&color.trim(), &mut xml); - - // Render XML to string - if let Some(res) = xml_to_string(xml) { - res - } else { - String::from("") - } - } - Err(err) => { - format!("", err) - } - } - } else { - String::from("") - } - } else { - String::from("") - } - }); - } - - builder = builder.insert("vars", &self.species.vars).unwrap(); - - if include_parent { - let mut this = self.clone(); - - loop { - builder = builder.insert_map(&this.species.name, |_| { - this.get_builder(variant_name, false) - }); - - if let Some(ref parent) = this.parent { - this = *parent.clone(); - } else { - break - } - } - } - - // TODO: memoize the builder to this stage - - // Variant tags - if let Some(tags) = self.species.variants.get(variant_name) { - builder = builder.insert_map("tags", move |mut builder| { - for tag in tags.iter() { - builder = builder.insert_bool(tag, true); - } - - builder - }); - } - - builder - } - - pub fn get_variant(&self, name: &String) -> Option { - let rendered = self.rendered_variants.lock().unwrap().get(name).cloned(); - if let Some(rendered) = rendered { - Some(rendered) - } else if let Some(path) = self.species.variant_paths.get(name) { - // TODO: log error - let template = self.compile(path).ok()?; - let data = self.get_data(name); - let rendered = template.render_data_to_string(&data).ok()?; - - let parsed = Element::parse(rendered.as_bytes()).ok()?; - self.rendered_variants - .lock() - .unwrap() - .insert(name.clone(), parsed.clone()); - - Some(parsed) - } else { - None - } - } - - pub fn get_asset(&self, name: &String) -> Option { - let loaded = self.loaded_assets.lock().unwrap().get(name).cloned(); - if let Some(loaded) = loaded { - Some(loaded) - } else if let Some(path) = self.species.asset_paths.get(name) { - let string = std::fs::read_to_string(path).ok()?; - let parsed = Element::parse(string.as_bytes()).ok()?; - self.loaded_assets - .lock() - .unwrap() - .insert(name.clone(), parsed.clone()); - - Some(parsed) - } else { - None - } - } - - pub fn species(&self) -> Arc { - Arc::clone(&self.species) - } -} - -impl PartialLoader for RenderingContext { - fn load(&self, name: impl AsRef) -> Result { - let name = name.as_ref().to_str().ok_or(mustache::Error::InvalidStr)?; - - let components = name.split('.').collect::>(); - - if components.len() == 1 { - if let Some(path) = self.species.template_paths.get(name) { - Ok(std::fs::read_to_string(path)?) - } else { - eprintln!("No template named {}", name); - Err(mustache::Error::NoFilename) - } - } else if components.len() == 2 { - if components[0] == self.species.name { - self.load(components[1]) - } else if let Some(ref parent) = self.parent { - parent.load(name) - } else { - eprintln!( - "Cannot get template named {}: no species called {} in the inheritance tree", - name, - components[0] - ); - Err(mustache::Error::NoFilename) - } - } else { - eprintln!("Cannot get template named {}: expected `name` or `species.name`", name); - Err(mustache::Error::NoFilename) - } - } -} - -macro_rules! set_color { - ( $fn_name:tt, $color_name:expr, $opacity_name:expr ) => { - pub fn $fn_name(color: &str, xml: &mut Element) { - let (color, opacity) = if let Ok(parsed) = color.parse::() { - (format!("#{:02x}{:02x}{:02x}", parsed.r, parsed.g, parsed.b), parsed.a) - } else { - (color.to_string(), 1.0) - }; - - fn rec(color: &str, opacity: f32, xml: &mut Element) { - if let Some(style) = xml.attributes.get_mut("style") { - let mut new_style = Vec::new(); - - for (name, value) in parse_css(style) { - if name != $color_name && name != $opacity_name { - new_style.push(format!("{}:{}", name, value)); - } - } - - new_style.push(format!(concat!($color_name, ": {};"), color)); - new_style.push(format!(concat!($opacity_name, ": {};"), opacity)); - - *style = new_style.join(";"); - } - if let Some(_fill) = xml.attributes.get($color_name) { - xml.attributes.insert($color_name.to_string(), color.to_string()); - } - if let Some(_fill) = xml.attributes.get($opacity_name) { - xml.attributes.insert($opacity_name.to_string(), opacity.to_string()); - } - - for child in xml.children.iter_mut() { - if let XMLNode::Element(ref mut child) = child { - rec(color, opacity, child); - } - } - } - - rec(&color, opacity, xml) - } - } -} - -set_color!(set_fill, "fill", "fill-opacity"); -set_color!(set_stroke, "stroke", "stroke-opacity"); - -pub fn query_selector(svg: Element, pattern: &str) -> Option { - if pattern == "" { - // NOTE: it looks like having a nested svg makes resvg unhappy - let mut group = Element::new("g"); - group.children = svg.children; - return Some(group); - } - - for child in svg.children { - if let XMLNode::Element(child) = child { - if let ("#", pattern_id) = pattern.split_at(1) { - if child - .attributes - .get("id") - .map(|id| id == pattern_id) - .unwrap_or(false) - { - return Some(child); - } else if child.children.len() > 0 { - if let Some(res) = query_selector(child, pattern) { - return Some(res); - } - } - } - } - } - - None -} - -pub fn xml_to_string(element: Element) -> Option { - let mut s: Vec = Vec::new(); - let mut config = xmltree::EmitterConfig::default(); - config.perform_indent = true; - config.write_document_declaration = false; - - element.write_with_config(&mut s, config).ok()?; - - String::from_utf8(s).ok() -} diff --git a/svg-default-metadata.xml b/svg-default-metadata.xml deleted file mode 100644 index ec69094..0000000 --- a/svg-default-metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - NAME OF THE EMOTE - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - YOUR NAME - - - - - diff --git a/vector/blobamber.svg b/vector/blobamber.svg deleted file mode 100644 index a9c0e87..0000000 --- a/vector/blobamber.svg +++ /dev/null @@ -1 +0,0 @@ -blobcatBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 LicenseblobcatFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfox \ No newline at end of file diff --git a/vector/blobamber_owo.svg b/vector/blobamber_owo.svg deleted file mode 100644 index 557c910..0000000 --- a/vector/blobamber_owo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vector/blobarcticfox.svg b/vector/blobarcticfox.svg deleted file mode 100644 index 1c778c8..0000000 --- a/vector/blobarcticfox.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - blobfox - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/vector/blobarcticfox_snug.svg b/vector/blobarcticfox_snug.svg deleted file mode 100644 index 3a59cf4..0000000 --- a/vector/blobarcticfox_snug.svg +++ /dev/null @@ -1,130 +0,0 @@ - -blobarcticfox_snugBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobarcticfox_snugFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobarcticfox_snuggle_right.svg b/vector/blobarcticfox_snuggle_right.svg deleted file mode 100644 index c0c7cf9..0000000 --- a/vector/blobarcticfox_snuggle_right.svg +++ /dev/null @@ -1,136 +0,0 @@ - -blobarcticfox_snuggle_rightBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobarcticfox_snuggle_rightFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobcat.svg b/vector/blobcat.svg deleted file mode 100644 index f09892d..0000000 --- a/vector/blobcat.svg +++ /dev/null @@ -1 +0,0 @@ -blobcatBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 LicenseblobcatFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfox \ No newline at end of file diff --git a/vector/blobcat_comfy.svg b/vector/blobcat_comfy.svg deleted file mode 100644 index 901500a..0000000 --- a/vector/blobcat_comfy.svg +++ /dev/null @@ -1,164 +0,0 @@ - -blobcat_comfyBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobcat_comfyFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobcat_snuggle_right.svg b/vector/blobcat_snuggle_right.svg deleted file mode 100644 index 3dd1908..0000000 --- a/vector/blobcat_snuggle_right.svg +++ /dev/null @@ -1,134 +0,0 @@ - -blobfox_snuggle_rightBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_snuggle_rightFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox.svg b/vector/blobfox.svg deleted file mode 100644 index 0482991..0000000 --- a/vector/blobfox.svg +++ /dev/null @@ -1,159 +0,0 @@ - - - blobfox - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobfox - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/vector/blobfox_3c_evil.svg b/vector/blobfox_3c_evil.svg deleted file mode 100644 index ad963a5..0000000 --- a/vector/blobfox_3c_evil.svg +++ /dev/null @@ -1 +0,0 @@ -blobfox_3c_evilBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_3c_evilFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst \ No newline at end of file diff --git a/vector/blobfox_blush.svg b/vector/blobfox_blush.svg deleted file mode 100644 index 990e73a..0000000 --- a/vector/blobfox_blush.svg +++ /dev/null @@ -1 +0,0 @@ -blobfox_blushBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_blushhttps://git.shadamethyst.xyz/adri326/blobfoxFeuerfuchsShad Amethyst \ No newline at end of file diff --git a/vector/blobfox_boop_owo.svg b/vector/blobfox_boop_owo.svg deleted file mode 100644 index b617451..0000000 --- a/vector/blobfox_boop_owo.svg +++ /dev/null @@ -1,161 +0,0 @@ - -blobfox_boop_owoBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_boop_owoFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_comfy.svg b/vector/blobfox_comfy.svg deleted file mode 100644 index b874fa3..0000000 --- a/vector/blobfox_comfy.svg +++ /dev/null @@ -1,130 +0,0 @@ - -blobfox_comfyBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_comfyFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_cry.svg b/vector/blobfox_cry.svg deleted file mode 100644 index f946b27..0000000 --- a/vector/blobfox_cry.svg +++ /dev/null @@ -1 +0,0 @@ -blobfox_cryBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_cryFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst \ No newline at end of file diff --git a/vector/blobfox_egg.svg b/vector/blobfox_egg.svg deleted file mode 100644 index e3b8235..0000000 --- a/vector/blobfox_egg.svg +++ /dev/null @@ -1 +0,0 @@ -blobfox_eggBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_eggFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst \ No newline at end of file diff --git a/vector/blobfox_heart.svg b/vector/blobfox_heart.svg deleted file mode 100644 index 8e3353b..0000000 --- a/vector/blobfox_heart.svg +++ /dev/null @@ -1,131 +0,0 @@ - -blobfox_heartBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_heartFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_nom_egg.svg b/vector/blobfox_nom_egg.svg deleted file mode 100644 index ae10c21..0000000 --- a/vector/blobfox_nom_egg.svg +++ /dev/null @@ -1 +0,0 @@ -blobfox_nom_eggBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_nom_eggFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst \ No newline at end of file diff --git a/vector/blobfox_plural.svg b/vector/blobfox_plural.svg deleted file mode 100644 index 03044c6..0000000 --- a/vector/blobfox_plural.svg +++ /dev/null @@ -1,893 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vector/blobfox_plural2.svg b/vector/blobfox_plural2.svg deleted file mode 100644 index 04fd00e..0000000 --- a/vector/blobfox_plural2.svg +++ /dev/null @@ -1,308 +0,0 @@ - - - - diff --git a/vector/blobfox_reach_aww.svg b/vector/blobfox_reach_aww.svg deleted file mode 100644 index ea4b888..0000000 --- a/vector/blobfox_reach_aww.svg +++ /dev/null @@ -1,158 +0,0 @@ - -blobfox_reach_awwBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_reach_awwFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_snug.svg b/vector/blobfox_snug.svg deleted file mode 100644 index c25266a..0000000 --- a/vector/blobfox_snug.svg +++ /dev/null @@ -1,125 +0,0 @@ - -blobfox_snugBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_snugFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_snug2.svg b/vector/blobfox_snug2.svg deleted file mode 100644 index a8d56a8..0000000 --- a/vector/blobfox_snug2.svg +++ /dev/null @@ -1,124 +0,0 @@ - - - -blobfox_snug2Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_snug2Feuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_snug_sleep.svg b/vector/blobfox_snug_sleep.svg deleted file mode 100644 index 482492e..0000000 --- a/vector/blobfox_snug_sleep.svg +++ /dev/null @@ -1,148 +0,0 @@ - -blobfox_snugBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_snugFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_snuggle_right.svg b/vector/blobfox_snuggle_right.svg deleted file mode 100644 index fa633af..0000000 --- a/vector/blobfox_snuggle_right.svg +++ /dev/null @@ -1,131 +0,0 @@ - -blobfox_snuggle_rightBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_snuggle_rightFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobfox_waaaa.svg b/vector/blobfox_waaaa.svg deleted file mode 100644 index cf95276..0000000 --- a/vector/blobfox_waaaa.svg +++ /dev/null @@ -1,212 +0,0 @@ - - - -blobfox_cryBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobfox_cryFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobhusky.svg b/vector/blobhusky.svg deleted file mode 100644 index 8727731..0000000 --- a/vector/blobhusky.svg +++ /dev/null @@ -1,165 +0,0 @@ - - - blobhusky - - - - - - - - - - - - - - - - - - - - - - - - - - Blobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 License - - - blobhusky - - - Feuerfuchs - - - https://git.shadamethyst.xyz/adri326/blobfox - - - Shad Amethyst - - - - - - diff --git a/vector/blobhusky_snuggle_right.svg b/vector/blobhusky_snuggle_right.svg deleted file mode 100644 index eabffa0..0000000 --- a/vector/blobhusky_snuggle_right.svg +++ /dev/null @@ -1,136 +0,0 @@ - -blobhusky_snuggle_rightBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 Licenseblobhusky_snuggle_rightFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst diff --git a/vector/blobstella.svg b/vector/blobstella.svg deleted file mode 100644 index fae8aed..0000000 --- a/vector/blobstella.svg +++ /dev/null @@ -1 +0,0 @@ -blobcatBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 LicenseblobcatFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfox \ No newline at end of file diff --git a/vector/coffee.svg b/vector/coffee.svg deleted file mode 100644 index 5eda2be..0000000 --- a/vector/coffee.svg +++ /dev/null @@ -1,109 +0,0 @@ - -coffeeBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 LicenseFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethystcoffee diff --git a/vector/crowbar.svg b/vector/crowbar.svg deleted file mode 100644 index e1428e9..0000000 --- a/vector/crowbar.svg +++ /dev/null @@ -1,98 +0,0 @@ - -crowbarBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 LicenseFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethystcrowbar diff --git a/vector/knife.svg b/vector/knife.svg deleted file mode 100644 index e0973ca..0000000 --- a/vector/knife.svg +++ /dev/null @@ -1 +0,0 @@ -blobfoxBlobfox team (https://git.shadamethyst.xyz/adri326/blobfox), licensed under the Apache 2.0 LicenseblobfoxFeuerfuchshttps://git.shadamethyst.xyz/adri326/blobfoxShad Amethyst \ No newline at end of file