* Properly cache regexes in chat sanitization/accents
Wow I wonder if `new Regex()` has a cost to it *looks at server profile*.
* Avoid lag caused by Tippy command completions
CompletionHelper.PrototypeIDs explicitly says *not* to use it with EntityPrototype. Unsurprisingly, reporting a completion result for every entity prototype in the game is a *bad idea*.
* Add active count metrics to some high-load systems
Mover & NPCs
I suspect the thing that caused the Leviathan round to shit itself on performance is NPC spam in space or something. So let's verify that.
* Enable parallel processing on pow3r again
Originally disabled due to a theory of it causing bugs, it was re-enabled on Vulture, and I'm not aware of it having caused any issues there.
* Replace hashset with bitflags for AtmosMonitor alert types.
Allocating these hashsets was like 20% of the CPU of atmos, somehow.
* Cache HashSet used for space movement collider checks
Turns out this was a ton of server allocations. Huh.
* Rename ChatSanitizationManager to ChatEmoteSanitizationManager
The prior name was kind of confusing as there's a emote one and
then now there's also chat expansion happening in the accent system,
so knowing which I actually need to edit is useful.
So, I just need to keep myself not confused.
* Rename smileyToEmote and remove punctuation duplicates
The name SmileyToEmote is just... Bad.
Plus, I needed to remove the punctuation duplicates as that would
break any kind of regex parsing that I tried.
* Switch to regex from checking end of string
I also changed from System.Globalization to ILocalizationManager.
Writing that regex was definitely an experience.
* Document regex and the manager
* Rename it back
* Simplify regex
* added more slang to the sanitization manager
* idk why this file is here
* Added new sanitization accent
* No longer is an acccent, instead is a dictionary
* Reverted back to a system similar to before, added the new netspeak from the dictionary
* Added some new words to the chat san
* Added (wdym --> what do you mean) to the chatsan
* merge conflict
* removed boolvalue
* remove space
* Upcoming
* Added MF and ETC to chatsan :))
* upcoming
* added FYI and WYD to speech-chatsan.ftl
* Made the chatsan accent string a const string with [ValidatePrototypeId<AccentPrototype>]
* forgot the ';' :(((
* fixed error throw [AccentPrototype] --> [ReplacementAccentPrototype]