509 Commits over 1,399 Days - 0.02cph!
Always use addon map list for map leaderboards in menu
Add scrolling to leaderboard list in menu
Limit main menu leaderboard list to 5 items for now
Show all leaderboards in menu again
Basic support for {map} leaderboard name substitution
Only supported for MapSelect.Official
Added hotload_log engine convar
Whitelist TextWriter and StringWriter
StringWriter only writes to memory. I'm leaving StreamWriter forbidden for now.
Allow sending compiled shaders to clients
Added test for adding properties with default values
Support for log value histograms
https://files.facepunch.com/ziks/2022-10-10/sbox-dev_YnroiYzjt5.png
Add Hotload.AssemblyResolver, warn if not assigned when needed
Set HotloadManager.AssemblyResolver for client / menu / server
Fixed some histograms being offset horizontally
Only show histogram markers that are in range
Fall back to fetching top scores if no scores around user
Added Leaderboard.GetHistogram()
Basic leaderboard histogram drawing
Show markers on friend scores in histogram
Check type inits before loading an assembly Facepunch/sbox-issues#2313
In-game leaderboard UI tweaks with title / player count
https://files.facepunch.com/ziks/1b1011b1/sbox_zdvdjjzfiN.png
New Leaderboards API wraps Steam Leaderboards
Fixed ambiguous property match in HasSkipHotloadAttribute
Fixed PropertySheet AmbiguousMatchException
Would happen if a subclass redeclared a property with "new"
Added TrustedBinaryStream
* Required by AssemblyRegistation
* Only created by AccessControl
Rename `AssemblyRegistation` to `AssemblyRegistration`
Move TrustedBinaryStream to Sandbox.Access, so it's hidden from users
▅▍▌▌ ▉▉▄▍▍▉▇▆▋▍▇ #▊█▋
! ▄▊▋▉▌ ▊█▆▌▌▇ ▉▌▋▆▉▇█ ▇▊▇ ▊▄▌▆▊▄ ▋▆ ▆▉▅▄▌▇▋▋, ▊▅▆▇▇ #▊▅▊
Allow loose .txt and .csv files in published addons
Added TypeDescription.GetAttributes<T>()
Fixed -tools not starting if `ServerAddons.TryAdd()` returns null
Added Color[32].FromRgb[a]
Color[32] property consistency cleanup
Added some Color[32] tests
Move hotload unsupported warnings to Sandbox.Generator
Added warning for static fields in generic types
Fixed some addon DLLs not getting watched
Introduced by bb5359a20
Added failing hotload static primitive field test
Repros Facepunch/sbox-issues#1918
Fixed hotloading static fields of auto-skipped types
Fixes Facepunch/sbox-issues#1918
Fixed hotloading concurrent containers
EntityManager.OnHotloaded safety
Handle entities being added / removed during the event.
Fixed possible exception in ToTitleCase()
ToTitleCase(string) tests
Use memoization for short strings in ToTitleCase
More ToTitleCase tests
More persistent caching between hotloads
HotloadManager name consistency
Added failing hotload test for static initonly HashSets
Added ConcurrentQueueUpgrader
Fixed in-place hotload of a HashSet<T>
Allow individual types to be added to hotload SkipUpgrader
Skip hotload for types in System.Net.Http and System.Text.RegularExpressions
Fixed some false negatives when checking if a type is blittable
Added ConcurrentDictionaryUpgrader, fixed ConcurrentQueueUpgrader
Only start addon worker threads when first needed
Make sure hotload verbose log works with and without -tools
Cache which static fields need to be watched in hotload
Some extra timing info for hotload
Added InstanceUpgrader.GetUpgraderOrDefault<T>()
DefaultUpgrader field caching, now uses auto-skip
Fixed verbose hotload log formatting
Fix error in JsonSerializerOptionsUpgrader on hotload
Added HasSkipHotloadAttribute() helper method
ArrayUpgrader now checks AutoSkipUpgrader
Added SkipHotload to Arguments array in LogEvent
Fixed AutoSkipUpgrader check in ArrayUpgrader
Fixed DelegateUpgrader missing some replacements
AutoSkipUpgrader is now optional for ArrayUpgrader
Added failing test involving JsonSerializerOptions
Moved special handling hotload upgraders
Special json hotload handling, fixes #213
Fixed bug hotloading lambdas in generic methods
AsyncTasks tests stability
More helpful worker task yielding error
Merge branch 'master' of sbox
Expirable SyncContext refactor
* Rename MainThreadContext to ExpirableSynchronizationContext
* ExpirableSynchronizationContext supports having multiple live instances on different threads
* Added SyncContext static class to handle resetting on session end
* MainThreadContext.Instance is now SyncContext.MainThread etc
More control over addon tasks running on worker threads
* Added an ExpirableSynchronizationContext for worker tasks
* WorkerThread.Start() spawns a bunch of long running tasks to process addon tasks off the main thread
* WorkerThread.Stop() causes those worker tasks to exit, can be restarted later
* Stop worker threads during hotload
* Fixed case where addon tasks that refuse to cancel could keep running forever on a worker thread
Fixed errors after rebase
Exposed hotload skip attrib and callback interfaces
Deleted empty INotice.cs
Added cl_hotload_log and sv_hotload_log console vars
Fixed possible NRE when setting up console vars
SkipHotloadAttribute now supports properties
Fixed hotload test assemblies having wrong package ID
Replaced hotload callback interfaces with IHotloadManaged
Destroyed() returns a state dictionary that is passed to Created() in the new instance
Don't let Hotload see some sensitive fields
IHotloadManaged.Destroyed() now passes in a dictionary ready for use
Don't let Hotload see some sensitive fields
Allow menu tasks to persist between sessions
Thread safety in MainThreadContext.CanTaskMethodPersist
Thread safety in MainThreadContext.CanHandleCancellation
Added another async task test
Tests for cancelling tasks on game loop end
Persist tasks that were awaiting a cancelled task
Test for task that saves itself from cancellation
Test for task that politely handles being cancelled
Let tasks from an expired context handle awaiting a cancelled task only once
Some extra safety when persisting tasks handling a cancellation
Updated Sandbox-Engine-Test.sln to include newer projects
Fixed class name collisions causing an exception in EventSystem on hotload
Test projects now target net6.0 too
Fixes build error in Sandbox-Engine-Test.sln
Removed attempt to set private Host.IsClient in Sandbox.Test
Fixed SetTextDecoration test
Fixed default value handling in Sandbox.Hotload
MONO_CECIL wasn't defined in Hotload project after upgrade to net5.0 / net6.0, which is needed for finding new default values of fields.
Added mechanism for aborting tasks that persist between game sessions
Hotload: Fixed duplicate key error spam in console
Hotload: Cleanup
Hotload: Failing enum array test
Hotload: Fixed upgrading enum arrays
Hotload: Failing static readonly field test
Hotload: refactor to support upgrading into existing instances
Merge branch 'master' of github.com:Facepunch/sbox
Hotload: Failing test for nested delegates
Hotload: Fixed some nested delegates not upgrading
Hotload: DelegateUpgrader cleanup
Hotload: Failing test for Facepunch/sbox-issues#345
Hotload: Fixed redundant GC.SuppressFinalize calls
Hotload: Better handling for multicast delegates