1,002 Commits over 1,369 Days - 0.03cph!
Added InstanceUpgrader.GetUpgraderOrDefault<T>()
DefaultUpgrader field caching, now uses auto-skip
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
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
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
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
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
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
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
Cleanup texture builders to reduce loads of code duplication
Bring Texture3d, TextureArray & TextureCube builders extra properties
Make Texture2DBuilder a struct
Generic gibs are now based on the entity's physics material
Moved generic gibs and added break sound to Surface asset
Added PhysicsBody.GetDominantSurface, PhysicsShape.SurfaceMaterial and Surface.GetRandomGib
Allow breakable glass to use assigned UV mapping (requires map entity recompile)
Fix glass texture coords when breaking shards that have moved away from the panel
Whitelist System.Half
Fix base shader not compiling
Fix alpha testing for shaders
Allow foliage shader to be compiled again
Don't bother trying to compile 32 bit PCM so you don't damage your ears if you try
Merge pull request #168 from Facepunch/texture-builder
Cleanup texture builders to reduce loads of code duplication
Create Developer-GenerateSolutions.bat
Completely removed vscript from anim system
Update Developer-GenerateSolutions.bat
Few more script references in anim projects
Remove WithMips for texture cube for the time being
Add constructor parameters for CreateCube & CreateArray
Remove anonymous param from Texture Finish
Create WithAnonymous for textures instead of passing it as a parameter to Texture Finish
Remove anything marked as [Obsolete] 3+ months ago
Obsolete Entity.EyePos/Rot => Entity.EyePosition/Rotation
delete some legacy c++ concommands: god, say, give, etc. these didn't work anyway and if they should work they should be done in c#
reimplement cl_showpos in c# so it uses the pawn, remove cl_showfps (there's much better ways to see it now)
Fix compile error and strip Panorama stuff from the particle host
Remove more legacy player concommands and whatevers left of impulse
remove env_message
Allow menu tasks to persist between sessions
string.QuoteSafe takes a bool, if true the quotes are optional
DataNode sorts children on creation (fixes no children)
Make scrollbar more apparent (todo make qt scrollbars all hover type)
Added LocalAddon GetRootPath(), GetCodePath(), GetAssetsPath()
Fixed QuoteSafe not handling empty/null strings
Bind listview/treeview activated
Add TreeView.SetExpanded
Less abrasive qt errors/warnings
Get access to MRU assets from c#
Allow @ in QuoteSafe
Add DataNode.RemoveAllChildren
Add TreeView.Indentation
Asset Browser has filters etc
If filtering by recent, then order by recent
WheelEvent has HasAlt, HasCtrl, HasShift
Ctrl wheel in asset list changes list type/icon size
Add "Everything" category
Add toggle for recursive folders
Add TaskCanceledException to whitelist
Put it where it belongs
Access to AssetType
Initialize interop to nullptr
Packaged games properly update their hash for networking, fixes net vars in packaged games
Add "content" addon type
Update addon list on asset browser when they change
Addon switcher shows paths
TreeNodes support context menus, added context menus to asset browser folders
Create in folder options
Updated Citizen blendshapes. Updated Citizen AO now you can sometimes see the inner lip
Merge branch 'master' of sbox
Loading screen can access game/map packages
Don't let Hotload see some sensitive fields
Merge branch 'master' into hotload-api
Don't let Hotload see some sensitive fields
IHotloadManaged.Destroyed() now passes in a dictionary ready for use
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
Allow menu tasks to persist between sessions
Allow menu tasks to persist between sessions
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
Fixed hotload test assemblies having wrong package ID
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 possible NRE when setting up console vars
SkipHotloadAttribute now supports properties
Added cl_hotload_log and sv_hotload_log console vars
Exposed hotload skip attrib and callback interfaces
Thread safety in MainThreadContext.CanTaskMethodPersist
Thread safety in MainThreadContext.CanHandleCancellation
Added another async task test
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
Some extra safety when persisting tasks handling a cancellation
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
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
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
Hotload: Simplified test initialization
Hotload: Added failing Dictionary comparer test
Hotload: Fixed comparer being lost from dicts / hash sets on hotload
Hotload: Added failing test for 2D arrays
Hotload: basic multi-dimensional array support
Hotload: failing multi-dim struct array case
Hotload: don't attempt to block copy multi-dimensional arrays
First draft of AutoSkipUpgrader
Enable AutoSkipUpgrader in HotloadManager
Cleaned up AutoSkipUpgrader
Merge remote-tracking branch 'origin/master' into hotload-autoskip
Show list of auto-skipped types in HotloadDetails sheet
Nicer type names in HotloadResult
Merge branch 'hotload-autoskip'
Fixed stylesheet parser thinking the // in http:// was a comment
Texture.Load supports https://
Update baseaccess.txt
Game list API test
Panel.OnDeleted
DevUI Remove Logger on delete
Create art_test.vmap
Map testing art assets
Merge branch 'master' of sbox
Restore testmap (was a broken LFS pointer)
fix materials world size
Rename IMenuSystem to IMenuAddon
Cached files from server go to downloads/.sv/
Create RootFileSystem class, clean up EngineFileSystem init
Github addon downloader
RunAnalyzersDuringBuild = false
Merge branch 'master' of sbox
Art Test Map 2
Map 2 testing art assets
Merge branch 'master' of sbox
Refactor addon loading so it's not dependant on folder name (cc @layla you need to add name to your .addon)
Warn if trying to add addon without an .addon
Merge branch 'master' of sbox
Fixed sub-filesystem dispose parent on dispose
Dispose transient addons on game shutdown
Rename AddonManager to ServerAddons (clearer)
Mount downloaded addon when creating gamemode
Move IMenuAddon into engine (so it can be accessed everywhere)
Loading screen refactor
lighting test / asset cleanup
Merge branch 'master' of sbox
Integrate cs_mdl_import into modeldoc_utils so it can be used by both modeldoc and cmd line
Add Invert option to RenderPrimitiveBox
Add ModelDoc RenderPrimitivePlane
Update groups.vgc
Iterating on borders, change how borders are calculated to something simpler and better
Finish the equation for cssbox borders that works universally
Fix border alpha
Remove a few pointless border tests
Add another UI border test. Fix border-top-left-radius and border-bottom-right-radius wrong way around
Add UI test for scene renders
Fix border offsetting
More useful LoopModeLevelLoad hooks
Bind GetConvarValue for engine
Move addon provision, gameinfo to sandbox.engine
Look for gamemode info from the LastApiResponse
Merge branch 'master' of sbox
Added Art Test Map (Doors)
Map for art testing
Merge branch 'master' of sbox
Close the loading screen at the right point
Update art_test.vmap
Some clean up
Fixed AddViewsToSceneSystem returning SCENE_VIEW_RENDER_TRGET_INVALID for the last few frames of loading, causing hall of mirrors (I don't think any AddViewsToSceneSystem should be returning invalid but if they do we just skip over them)
Tweak loading screen transition out now it's smooth
Merge branch 'master' of sbox
Cleaned up AutoSkipUpgrader
Merge remote-tracking branch 'origin/master' into hotload-autoskip
First draft of AutoSkipUpgrader
Enable AutoSkipUpgrader in HotloadManager
Hotload.SkipAttribute fixes, merged with Hotload.SafeAttribute
Merge remote-tracking branch 'origin/master'
Hotload: Reflection instance tests
Hotload: Added failing WeakReference tests
Hotload: Working on a nicer system for organising instance upgraders
Hotload: Factored out reflection and delegate type upgraders
Hotload: Added WeakReferenceUpgrader
Hotload: Parameter cleanup
Hotload: Test cases for closures losing captures of various kinds
Hotload: Fixed possible exception in DelegateUpgrader
Hotload: Made it more obvious when to pass a replacement type
Hotload: Added WeakReferenceUpgrader
Hotload: Some documentation, clearing UpdaterGroup caches
Hotload: Added a failing HashSet<T> test
Hotload: Actually use ChildUpgraderOrder
Hotload: Finishing off refactor
Hotload: Cleaning up
Hotload: IBorn and IKilled work again
Hotload: Fixed OnClearCache() not being called in UpgraderGroup children
Hotload: Fixed ArrayUpgrader calling the wrong method on elements
Merge remote-tracking branch 'origin/master'
Merge branch 'hotload-refactor'
Hotload root tracing
Merge remote-tracking branch 'origin/master'
Another failing delegate hotload test case
Fixed possible NRE in FindMatchingLambdaMethod
Split hotloading tests up
Even safer cache check for delegate substitutions
Replace delegates with null if we can't find a valid substitution
Fixed possible incorrect delegate target substitution
Another hotload delegate test
Merge branch 'hotload-fix'
Merge branch 'master' of github.com:Facepunch/sbox
Split hotloading tests up
Even safer cache check for delegate substitutions
Replace delegates with null if we can't find a valid substitution
Another failing delegate hotload test case
Fixed possible NRE in FindMatchingLambdaMethod