* feat: separate sex from voice
* wip: tried to make it use voice collection directly
* fix: yaml
* fix: migrations
* fix: ensure valid now validates correctly
* fix: unisex mobs wouldn't have voice
* chore: fix RT version
* refactor: clean up code into subfunctions
* refactor: swap name and protoId in voice
also rename sounds to voice
* chore: add comment
* fix: fallback sounds for non-humanoid characters
* fix: tests
* fix: tests
* refactor: change requests
* refactor: convert sheepers
* refactor: move Voice to SpeciesPrototype
* chore: add tests
* fix: test IoC error
* refactor: use null coalesing in ConvertProfiles
* refactor: move vocal sex association to speciesPrototype
* style: remove space from new()
* refactor: use name from emoteSoundsPrototype for UI
* refactor: no more null Voice on profile
* refactor: make DefaultVoice a static readonly property
* fix: add default voice to HumanoidProfileComponent
* chore: remove repeated vocal component from species yaml
It's inherited from BaseSpeciesMob
* style: correct comments for refactor
* fix: add missing locale for FemaleVulpkanin
* refactor: simplify logic based off surounding code
* test: add test to make sure that sexes are properly enumerated for the voices
* fix: add back urist sounds
* style: clarify comments again
* style: last thing im changing before I sleep
* refactor: battling programming semantics
* refactor: Name on EmoteSoundsPrototype.cs to VoiceSelectorName for clarity
* revert: isDirty change
* Fix HumanoidProfileTest.EnsureValidLoading.
The profile's voice wasnt being updated, thus the voiceChanged event was never raised and that meant that the voice component had old EmoteSounds
* oops
* refactor: do the easy change requests
* refactor: use an array for indexing sex conversion for performance
* fix master
* mistakes were made
* chore: redo migrations
---------
Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
* initial visual nubody
* oops overlay
* im so pheeming rn
* conversion...
* tests
* comeback of the underwear
* oops eyes
* blabbl
* zeds
* yaml linted
* search and visible count constraints
* reordering
* preserve previously selected markings colors
* fix test
* some ui niceties
* ordering
* make DB changes backwards-compatible/downgrade-friendly
* fix things again
* fix migration
* vulpkanin markings limit increase
* wrapping
* code cleanup and more code cleanup and more code cleanup and more code cleanup and
* fix slop ports
* better sampling API
* make filter work + use the method i made for its intended purpose
* fix test fails real quick
* magic mirror cleanup, remove TODO
* don't 0-init the organ profile data
* remove deltastates
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>