3,140 Commits over 2,468 Days - 0.05cph!
▋ ▍█▋ ▄▆▆██▉▇▍▊▋▍▊▋▇ ▅▅▄ ▋█▄▊▅▍▅ ▊▊▄ ▄▍▇▆▌▅▆ █▌▉▄ ▋▉▄▅▍▄
▅ ▄▇▅▋▊▍▍▄█▅▊▉ ▆▌▋ ██▅▍▊▍ ▍▍▇▅ ▇▆▌ ▆▍▆▋▆▆▋▊▆▍▅▆▆ ▄▅▉ ▉▍▍▍▅▆█▋▋ ▇▅▅▇▋▉▆▊▅▋ █▌▌▇▍▅▅ ▆▉▍▋█▍▋█ ▌▅▇▇▊ ▄█▉▄ ▍▄▊▆ ██▌▊▄▆▋▊▊
▌ ▍▉▅██▊ ▌▇▆▌▊▍▍▄▄▉▋ ▋▉▋▉▉▄▄▅▇▊▍ ▄▌▉▅▍▇▅▄▊▉▆ ▉▇▄ ▊▅▆▆▋▉▆▉▅ ▉▌ ▉▆▇█ ▅▆▄ ▄▍▇█▆▉▄▉▍ ▍▍▆▉▄█ █▍▍▌▍▉▄▊█▊▄▆▇▄▋▉ ▉▇▅█▇▋▅ ▍▊ ▅▅▊▇ ▊▍▄▌▄ ▋█▉▇▆▉▄▇
▇ █▅██▅▌ ▌▊▅▊▉▌█▊ ▆▇▅▅▄▌▅ ▌▇▌▄▇▍▌▆▊ ▋▆▇▊
▇ ▍▋▄▉█ ▍▌ ▇▇▅ ▍██▆▄█▍▄▆▉▊█ ▊▊▋▊▋
▊ ▌▌▉█▇▋▇█ ▌▍█▊ ▌▇ ▊▉▉▌▉ ▊▍▇▆▍▆▊█ ▇▄▇█ ▊▅▉▌ ▇▉▆▊▋▋▇ ▄▋▍▊▆▉
▋ ▇▊▄▋▊▌▄▋ ▆▊▆▄▆▅▉▋ ▇█▍▍▋▆▌▆ ▌▇▊▉▄▇▉▋▌▆▊ ▆█▋▆ ▋▅▆ ▌▊▌▅▆▅▆█ ▇▉▊▆▍▄
▉ ▇▉▊ ▄▊▉▇▄▇▄ ▇▆▇▌ ▆▋▊▅▌▅▉ ▅▆▉ ▆▄▍ ▋▅█▆▍▌▋█ ▋▇▇▋▇▄▅ ▇▌▄ ▊▇▉▉▊▋▅██▍▆
▌ ▅▌▇ ▄▄▊▋▊▇▍▋▊▊▅ ▇▅▋▌▉▊▌▆▇█ ▅▉▅▊▇▇▇ █▉▌▍ ▊▌▉█▍ ▄▌▅▄█▍▅█▄▇▋▅▆▆▍▌█▌▌█▉▅ ▇▍▉▆▄▋ ▅▋ ▇▆█▊ ▊▄ ▅▇▄ ▆█▊▉ ▍▉▆▆▇▍ ▅▅ ▍▊▄▇▍█▅▉▅ ▌█ ▇▇▄ ▉▊▉ ▉▍ ▋▅▋▉▄▌▉ ██▇▄▋▋▄▉▇▊ ▇▆▋▉▍▋▍▇▍▇ ▆▍▄ ▉▋▋▄▇ ▄▆▄▄▉▇▄ ▋▅ ▄▅▊▆▋▊
▋ ▄▆▄▇▄▄ ▋▋▊▉▇ ▊▊▉▇▍ ▄▉▍▇▅▅▊ ▋▇▇▇█▊
▄ █▋▍ ▅▍▆▉▅▄▊▅ ▉▆▍ ▊▇▌▇▆▊ ▅▆ █▆ █▌▆▌▊▄▉▋█▍▋▄▊ ▄▆█▍▌▇▉ ▆█▉ ▆▅▄▍█▇▍ ▍▆▇ ▊▊▄▍▊▉▄▄█ ▅▇ ▅▉▊▌
▊ ▋▊▋▌▊▅ █▋▄▆ ▋▅▌▌ ▄▅ █▅▄ ▊▆▉█▋ ▇▋ ▅▅▆ ▊▌▉▄▅▇ ▆▌▆█▆▋▄▋▊▉▄▍▄▌▊██▇▅█▅▅▍▉▌▄▇▉█ ▇▆ ▅▋▉ ▋▇▅▊▌ ▍▅▋▌ ▆▇▋▄▆▉▅ █▆ ▌▋▆▄▌▋▉▅▇ ▉▇▆▇
Add layer-specific map markers for moon pools
Set up map renderers for underwater labs (stomp these if you need to - they're set by a script)
Fix some issues in the critter shader making fish render all weird
(probably needs a forked version for things other than the fish though)
Add renderlabs command to generate a PNG of a specific floor of the underwater labs map
Add support for layer-specific map markers
Make an enum for the map layers
▄ ▅▍▆▍▇▉ ▇▌▅▌▇ ▉▄▋▇ ▉▇▇██▅▆▊▆ ▌▊▆ ▌▌▊ ▆▉▍▇▊▉
▇ ▉▊▉ ▌▄ ▇▇▋▋▅▊▉▍▆ ▉▍▌▌ ▍▌▋▋▉▆▍▅▌ ▌▇ ▄▋▄▄▇▋ ▋▄▄▅██▄▉▆▋▍▍▋▉▉▍▋ ▇█▊▋▅▇ ▌▌█ █▇▋█▊▉▉▉ ▌▍▌▊ ▉█▊▅▆▉▄▆▄▇▌ ▅▄▊▉▋▍ ▊▋ ▆▇▍ ▍▊▌▌▄ █▇▅▊▊▅
▄ ▍▆▄ ▇▉▍▇▇▇ ▇▇▆▊▌▄▍ █▉▇▆▋▊▇▄ ▆▌█▉▋▊ ▊▅▋▅▅▌▌▍▇ ▆▅▅▆ ▍▅▌▋▉▍▅▉▄▌▄
Auto switch between map layers depending on the player's current position
WIP map updates to support multiple underground layers
▉ ▊▍▍▍█ ▋▆▇▉▊▉ ▄▌▇▅▋▄ ▆▌▅▉▅▇ ▋█ ▄▉▇ ▋▆▅▇▍▇▍▊▍▊▅█▍ ▉▆▉▋▄▉ ▊▊█▄▉▋ ▅▄▉▉▅▉▇▆ ▌▊ ▆█▆▅█
Cherry pick everything (rip branch explorer)
Manually lazy init the skin approval list (no more static constructor)
Catch and log exceptions when building the approval list
▋ ▊▍▆▍ ▌▅▊▌▍▌ ▉▊▌▍▇▍▄▊ ▄▄▇▍█ ▇ ▇▄▊ ▅ ▄▉▍▋▄ █▍▌
▇ ▍▆▆▄▌▄ ▋▉▌█▆▄ ▍▅▅▆▍▍▍▇▅
▌ ▊▉▍▉▍▉▅ ██▊█▇▇ █▉▌▇▍▉▆▌▄▍ ▄▆ ▆▇▊ ▍▉▍ ▇ ▊▅▋▋▇▅▄▅▋ ▍██▍▉▊█▋▄ ▌▋▊▇▍▉ ▊▍▆▋▅▉█▌▋▅ ▋▆▊▌█▅ ▌▇▉▍▊▉▄ ▋▊ ▍▌▌▋▅▋▆ ▆▆▄ █▍▇▄▅█ ▉▊ ▌▌ █▋ ▍▉▋▍▆▌▍▌▅▌▉▅▆▋▊▅▉█ █▍▇▋▄▆▉▇▇ ▉▄ ▌▆▌▅ ▅▌▆▄▆█▇
Improve mugshot camera orientation a bit
Speed up writing to sv.files.db
More reliable check to see if a mugshot is loaded before displaying on the UI
Some mugshot rotation improvements
Automatically delete mugshots from sv.files.db
FileStorage cache is now backed by a MruDictionary instead of Dictionary (LMK if this breaks stuff in any demos)