* Fix broken layer hiding on clothes with multiple equipment slots
* Refactor ToggleVisualLayers, HideLayerClothingComponent, and ClothingComponent to allow more
precise layer hide behavior and more CPU efficient layer toggling.
* Adjust HumanoidAppearaceSystem to track which slots are hiding a given layer (e.g. gas mask and welding mask)
Add documentation
Change gas masks to use the new HideLayerClothingComponent structure as an example of its usage
* Fix the delayed snout bug
* Misc cleanup
* Make `bool permanent` implicit from SlotFlags
any non-permanent visibility toggle with `SlotFlags.None` isn't supported with how its set up. And similarly, the slot flags argument does nothing if permanent = true. So IMO it makes more sense to infer it from a nullable arg.
* Split into separate system
Too much pasta
* Remove (hopefully unnecessary) refresh
* Fisk mask networking
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* Keep old behaviour, use clearer names?
I'm just guessing at what this was meant to do
* english
* Separate slot name & flag
* dirty = true
* fix comment
* Improved SetLayerVisibility with dirtying logic suggested by @ElectroJr
* Only set mask toggled if DisableOnFold is true
* FoldableClothingSystem fixes
* fix bandana state
* Better comment
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* partial buckling refactor
* git mv test
* change test namespace
* git mv test
* Update test namespace
* Add pulling test
* Network BuckleTime
* Add two more tests
* smelly
* add face bandanas
* oops
* make face bandanas butcherable, also one bite
* oops
* Add mouth IdentityBlocker to bandanas
* refactor to use foldablecomponent
* remove some leftover bits
* remove HamsterWearable until face sprite updated
* oops
* review changes
* remove a few unneeded bits