diff --git a/artTools/game_suffixes.txt b/artTools/game_suffixes.txt new file mode 100644 index 0000000000000000000000000000000000000000..27af55c14505a871af0bd8c4ed74e8e78e87453b --- /dev/null +++ b/artTools/game_suffixes.txt @@ -0,0 +1,53 @@ +NoClothing +FuckdollSuit +AttractiveLingerie +StringBikini +Cutoffs +Slutty +UncomfortableStraps +FallenNunsHabit +PenitentNunsHabit +SluttyJewelry +HaremGauze +SlaveGown +SluttyBusinessAttire +NiceBusinessAttire +ComfortableBodysuit +SluttyMaid +NiceNurse +SluttyNurse +Schoolgirl +Kimono +Hijab +Battledress +NiceMaid +RestrictiveLatex +LatexCatsuit +MilitaryUniform +Minidress +ConservativeClothing +Chains +Cheerleader +ClubslutNetting +ShibariRopes +WesternClothing +BodyOil +Toga +SluttyQipao +Huipil +Bunny +Leotard +ChattelHabit +HalterTopDress +BallGown +Succubus +AttractiveLingerie +MaternityDress +StretchPants +Spats +ScalemailBikini +Monokini +Apron +Cybersuit +RedArmyUniform +SchutzstaffelUniform diff --git a/artTools/generate_game_suffixes.sh b/artTools/generate_game_suffixes.sh new file mode 100644 index 0000000000000000000000000000000000000000..e2ba0179523a91e541b1ffaa47c25d263dba1817 --- /dev/null +++ b/artTools/generate_game_suffixes.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# This script reads all possible values of $slave.clothes as mentioned by the documentation. +# This script uses the actual implementation of the JS clothing2artSuffix function as defined in src/art/vector/Helper_Functions.tw +# This script outputs suffixes to be used in the SVG naming scheme +# This script is meant to be executed at the project root directory. +# This script depends on bash, grep, sed, paste and nodejs (so best executed on Linux, I guess) + +( + echo 'var window = {};' + grep -v '^:' src/art/vector/Helper_Functions.tw + echo -n 'Array(' + sed '/^clothes:/,/:/!d' "slave variables documentation - Pregmod.txt" | grep '"' | paste -sd, + echo ').forEach(v => {console.log(window.clothing2artSuffix(v));});' +) | nodejs diff --git a/artTools/suffixes.py b/artTools/suffixes.py new file mode 100644 index 0000000000000000000000000000000000000000..5709ae95cb86566cb69b1ea67e4b39bc31495915 --- /dev/null +++ b/artTools/suffixes.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 + +import sys +import re + +svg = open(sys.argv[1]).read() +outfits = re.findall('(?<=")[^"]*Outfit_[^"]+', svg) +outfits = set(outfits) +#re_suffix = re.compile('(?<=Outfit_).+') +re_suffix = re.compile('(?<=Outfit_)[^_]+') +mapping = {o : re_suffix.search(o).group(0) for o in outfits} + +suffixes = set(mapping.values()) + +for v in sorted(suffixes): + print(v) diff --git a/artTools/suffixes_mapping.csv b/artTools/suffixes_mapping.csv new file mode 100644 index 0000000000000000000000000000000000000000..14df5b1ddc8bc0600af6c3c180dad975ffa96b93 --- /dev/null +++ b/artTools/suffixes_mapping.csv @@ -0,0 +1,55 @@ +Abaya;Hijab +Ballgown;BallGown +Bangles;SluttyJewelry +Battledress;Battledress +Bodysuit;ComfortableBodysuit +Bunny;Bunny +Chains;Chains +Chattelhabit;ChattelHabit +Cheerleader;Cheerleader +Clubslut;ClubslutNetting +Conservative;Conservative +Croptop;StretchPants +Cutoffs;Cutoffs +Cybersuit;Cybersuit +Fallennun;FallenNunsHabit +Halteropdress;HalterTopDress +Haltertopdress;HalterTopDress +Harem;HaremGauze +Huipil;Huipil +Kimono;Kimono +Latex; +Leotard;Leotard +Lingeriepreg;AttractiveLingerie +Maidnice;NiceMaid +Maidslut;SluttyMaid +Maternity;MaternityDress +Military;MilitaryUniform +Minidress;Minidress +Monokini;Monokini +Nicelingerie;AttractiveLingerie +Nursenice;NiceNurse +Nurseslut;SluttyNurse +Oil;BodyOil +Penitentnun;PenitentNunsHabit +Qipao;SluttyQipao +Scalebikini;ScalemailBikini +Schoolgirl;Schoolgirl +Schutzstaffel;SchutzstaffelUniform +SchutzstaffelLeft;SchutzstaffelUniform +Shibari;ShibariRopes +Slavegown;SlaveGown +Sluttyoutfit;Slutty +Soviet;RedArmyUniform +Spats;Spats +Straps;UncomfortableStraps +Stringbikini;StringBikini +Succubus;Succubus +Suitnice;NiceBusinessAttire +Suitslutty;SluttyBusinessAttire +Toga;Toga +Western;WesternClothing +; +;RestrictiveLatex +;FuckdollSuit +;LatexCatsuit diff --git a/artTools/svg_suffixes.txt b/artTools/svg_suffixes.txt new file mode 100644 index 0000000000000000000000000000000000000000..d273140c95f2a23ddc9c4288524dc2d0937481a7 --- /dev/null +++ b/artTools/svg_suffixes.txt @@ -0,0 +1,53 @@ +Abaya +Apron +Ballgown +Bangles +Battledress +Bodysuit +Bunny +Chains +Chattelhabit +Cheerleader +Clubslut +Conservative +Croptop +Cutoffs +Cybersuit +Fallennun +Halteropdress +Haltertopdress +Harem +Huipil +Kimono +Latex +Leotard +Lingeriepreg +Maidnice +Maidslut +Maternity +Military +Minidress +Monokini +Nicelingerie +Nursenice +Nurseslut +Oil +Penitentnun +Qipao +Scalebikini +Schoolgirl +Schutzstaffel +SchutzstaffelLeft +Shibari +Shine +Slavegown +Sluttyoutfit +Soviet +Spats +Straps +Stringbikini +Succubus +Suitnice +Suitslutty +Toga +Western diff --git a/src/art/vector/Helper_Functions.tw b/src/art/vector/Helper_Functions.tw new file mode 100644 index 0000000000000000000000000000000000000000..06e89d804a59da374d9202737e571af681995b22 --- /dev/null +++ b/src/art/vector/Helper_Functions.tw @@ -0,0 +1,14 @@ +:: Art_Vector_Helper_Functions_ [script] + +window.clothing2artSuffix = function(v) { + return v.replace(/^a[n]? /,"") /* remove "a" and "an" from the beginning*/ + .replace(/ ?(outfit|clothing) ?/,"") /* remove "outfit" and "clothing" (redundant) */ + .replace(/ (and|for) .+/,"") /* remove concatenated descriptions */ + .replace(/\w\S*/g, + function(txt){ + return txt.charAt(0).toUpperCase() + + txt.substr(1).toLowerCase(); + } + ) /* CamelCase by whitespace */ + .replace(/\W/g,""); /* remove remaining whitespace */ +}