1,002 Commits over 1,369 Days - 0.03cph!
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
Added Leaderboard.GetHistogram()
Basic leaderboard histogram drawing
https://files.facepunch.com/ziks/2022-10-04/sbox-dev_jf1ILIXWus.png
Show markers on friend scores in histogram
https://files.facepunch.com/ziks/2022-10-04/sbox-dev_1lIGzwZv9e.png
Leaderboard API documentation
More refactoring
* Leaderboard has too many fields to justify being a struct anymore
* Nested Leaderboard.Update and Leaderboard.Entry
* Leaderboard<T> can inherit from Leaderboard now, much less repetition
Built-in support for periodic leaderboards (daily / weekly / monthly)
Support for marking entries as deleted in the backend
Refactor to nest leaderboard attributes etc in the Leaderboard struct
Fixed leaderboard details having too much padding
Read leaderboard type info from local addon assemblies in tools
Display custom leaderboard types in the menu
https://files.facepunch.com/ziks/1b2011b1/sbox-dev_xm1fXA5ej8.png
Code-first typed leaderboards, support for creation / writing / reading
Check type inits before loading an assembly Facepunch/sbox-issues#2313
Main menu Leaderboard visual tweaks
Fixed submitting to typed leaderboards from the server
Main menu leaderboards support new types / multiple fields
Started on leaderboard definition code gen
Typed leaderboard score encoding
Typed score decoding
Moved setting for which leaderboards are visible in the menu
Added ExpandGroup.SetHeaderWidget
Added "danger" button type in tools
Let FloatProperty widget support more than 2 dp of precision
First pass of leaderboard type editor done
Fixed integer division in Link.cs
Converting long / double to / from string
Added MinValue / MaxValue to Float / IntProperty editors
Make PropertySheet.AddProperty() return a Widget
Leaderboard configs, typed leaderboards
WIP leaderboard type editor
In-game leaderboard UI tweaks with title / player count
https://files.facepunch.com/ziks/1b1011b1/sbox_zdvdjjzfiN.png
New Leaderboards API wraps Steam Leaderboards
Handle clients disconnecting while submitting a score
Added server-side Leaderboard.Submit( client, score ) extension
Added wrapper around Steamworks leaderboards
Allow querying leaderboards from menu code
Add DefaultLeaderboards addon metadata, for which boards to show in menu
Format for substituting in dates to default leaderboard names
Let date formats like yy-MM-dd survive string.ToTitleCase()
Added yy-MM-dd date format tests for string.ToTitleCase()
Use DateTime.UtcNow.Date for date substitution in leaderboard names
Get rid of LeaderboardSort enum, just use a bool IsAscending
Made Leaderboard const fields private
Rename GameIdent to PackageIdent in new leaderboard wrapper
Make LeaderboardEntry.Details internal for now
Added wrapper around Steamworks leaderboards
Allow querying leaderboards from menu code
Add DefaultLeaderboards addon metadata, for which boards to show in menu
Format for substituting in dates to default leaderboard names
Let date formats like yy-MM-dd survive string.ToTitleCase()
Added yy-MM-dd date format tests for string.ToTitleCase()
Use DateTime.UtcNow.Date for date substitution in leaderboard names
Get rid of LeaderboardSort enum, just use a bool IsAscending
Made Leaderboard const fields private
Rename GameIdent to PackageIdent in new leaderboard wrapper
Make LeaderboardEntry.Details internal for now
Let date formats like yy-MM-dd survive string.ToTitleCase()
Format for substituting in dates to default leaderboard names
Add DefaultLeaderboards addon metadata, for which boards to show in menu
Allow querying leaderboards from menu code
Add DefaultLeaderboard addon metadata, selecting board to show in menu
Added wrapper around Steamworks 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
Added TrustedBinaryStream
* Required by AssemblyRegistation
* Only created by AccessControl
Rename `AssemblyRegistation` to `AssemblyRegistration`
Move TrustedBinaryStream to Sandbox.Access, so it's hidden from users
Rename `AssemblyRegistation` to `AssemblyRegistration`
Added TrustedBinaryStream
* Required by AssemblyRegistation
* Only created by AccessControl
▅▍▌▌ ▉▉▄▍▍▉▇▆▋▍▇ #▊█▋
! ▄▊▋▉▌ ▊█▆▌▌▇ ▉▌▋▆▉▇█ ▇▊▇ ▊▄▌▆▊▄ ▋▆ ▆▉▅▄▌▇▋▋, ▊▅▆▇▇ #▊▅▊
▄▋▄▍ ▋▄▆▍█▅█▄▍▌▉ #▅▋▆
! ▍▄▆▉▅ ▆▄▊██▆ ▇▇▋▊█▍▆ ▄▍▊ ▇▍▊▍▅▍ ▅▍ ▅▅▉▊▄█▍▍, ▉▊▌▌▄ #▉▌▊
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
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