253,069 Commits over 3,990 Days - 2.64cph!
Loading screen can access game/map packages
Updated Citizen blendshapes. Updated Citizen AO now you can sometimes see the inner lip
Merge branch 'master' of sbox
TreeNodes support context menus, added context menus to asset browser folders
Create in folder options
movement fixes & rate changes
Add "content" addon type
Update addon list on asset browser when they change
Addon switcher shows paths
Squashed commit of what was on master as this has been out of main branch for long
Naive shadow atlas downsampling test
Some UI tweaks and hotbar wrap fix
Automatically perform threaded full updates of chunks closest to the player first
▊▄▇▄▌▌ ▄▉ ▊▊▅▅▇'▅ ▍▅▉▉█▅▆▇▌▊▅▄ ▉▉▆█ █▌▉▅▌▇▆ ▅█▆█
▇▆▉ ▍▇▍ ▋▍ ▅█▍▊▋▉▆▆▋ ▍▋▇▉▇▅▆▆ ▉▅▇▊▌ ▇▄▆▋▍▅ ▇▋▌▄ ▌▊ ▄▄█ ▅▌▊▉ ▄▉ ▅▊▍▌▍
Merge from midiconvar (relative knob support)
▊█▍ ▊▍▅▅▉▇▍ ▋▉▍▅▉▌▊▆█▇▍ ▍▉ ▍▍▋▌▆▊▌▋▇▋▅▅▆▊▋▄▄▌
Added Player.TryGiveBlock and automatically remove / cleanup orphaned items
Updated RigidbodyInfo to work in the idiosyncratic PrefabAttribute way
Missed a material to commit
Merge from altlook_clamps
Renamed HotbarSlot to a generic InventorySlot. Hooked Hotbar UI to inventory system. Fixed a bug where item ids started at 0.
▉▋▋▇▆ ▍█▉▊ ▋▆ ▌▌▄▇▅▅▉▆▄▅ █▉▌▇▌▋▉▍▄▉, ▋▇▍▄▍▊▊▄ ▊ ▆▅▋▊▋▆▆▊▅ ▅▉▇ ▌▅▍ ▄▆▍▄▇▅ ▍▉ ▉▆▉ ▉▌▍ ▇██ █▊▋▄ ▋▌▅ ▄▊▄█▌▉▅▍▆▄/▄▋▋▊▋█▇▉▅█▆▋▇ ▊▋▊▄ ▌▆▇ ▌▇▇▋
Cleaned up ski suspension code duplication
Extra null check on GetIdealMountPoint
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
Packaged games properly update their hash for networking, fixes net vars in packaged games
▌▆▆▇ ▍▉▆▄▍_▌▊▍ ██▌ ▄▄█▅ ▅▉ ▆▊▅▌▊
! ██▊ ▄▊█ ▇▌ ▇▋▉▆▆▌ █▋▌ ▄▄▌▉▉▊█▍
! ▅▆▄▍▊ ▉▅█ ▆▅▋█▍▆ ▅▊▉▄▅▉▋▆ ▇▋ ▋▇▊▄▄▅▌▌ ▅▄ ▉ ▆▆▍ ▊▅▇▌▍
▇▍▉▅█▊▋ ▉▌ .█▌▅ ▋, ▍▅▇▊▌▅ ▋▇▍▉▋▋▄▉▌▇▆▆
! ▆▍▌▍ ▊▊▉ ▄▆▊█▆▍▉ ▍▆ ▉▉▇▌▊▉_▌▋██▌, ▇█▅▍▅▊ ▆▊▆▍▍█▋ ▄▋ ▌▄ ▍▊▉▆▋ ▌▄ ▇▄▇▊ ▊▄▄▉▆▌▆ ▉▅ ▋▆▊▋▌ ▋▆▊▄▊
Added Always Sprint to the game options. If enabled, sprint key behaviour is inverted. Player sprints by default, and holding the sprint key will return them to walk speed.
Blendshapes update + blendshapes readme
Access to AssetType
Initialize interop to nullptr
Queue a threaded full update on neighbouring chunks when a new chunk is initialized
Added a simple dot crosshair
Added Map.ToSourceBBox and add parameter to Map.SetBlockInDirection to check for collisions. Players can no longer place blocks if it would collide with an entity
Add TaskCanceledException to whitelist
Add toggle for recursive folders
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
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
Fix obsolete stuff
Box shooter can now change model by looking at a model and pressing reload key
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
▌▉▅█▉█▍█▅▇ ▊▄▊█▋▊▇▅▉▆█▉ ▋▄▊▌▊▆▆▉▅█▅ ▆▇▋█▉ ▆▋▋▇ ▊█ ▍▊▋▅▇█▆▋ ▉█▇▇▋ ▅▋ ▊▌▋▆ ▊▆ ▆▍▇ ▅▄ ▅▋▍▋ █▅ ▌▇▅ ▄▅█▌.
▌▆█▌▊ ▍ ▍▄▇▌▉ ▍▄ ▅▄▆▋▋ ▇▄▇▆ ▉▌▋▍ ▅█ █▍▋▉▇▌▇█▋▇.
▆▇▅▍▌ ▍▇ ▋▇▄ ▌▄█ ▆▋▇█▊▊ ▊▄▋▋▉, ▊▇▄▄▊▅▋▊█ ▇█▍▍█ ▇▉█▄ ▉▅▊▇▉.
█▋▍█▋ ▋▅▆█▊▉▇ █▍▇▅ ▆▆▆ ▊▄▌▋█▄ ▆▅▅ ▄▅ ▊▍▆▋▉▆▊.
▋▄▌▆▄ ▄▇▇ ▄▌▊▅▌▇▌ ▇▋▉▊ ▍██ █▊▄.
▆▇▄▊▅▋▇▄▉▉▆▇ ▇▄▋█▅ ▄▇█▄▆▌▋▉▉▆▍ ▆▅▆▉▆▆▌ ▊▇▊▌.
Changes to how maps are loaded. Prevent Source hang dialog by turning GeneratePerlin into a Task. Added Map.OnInitialized. Only send maps to players if the map is actually initialized / generated.
▋▇█▉▋▍▅ █▊▍▋▌. ▌▇▍▅▊▋█ ▊▍▉ ▅▊▆▆▅▋▅▆▊▇█ ▅▍▉ ▅▌▉▉▊/▆█▄▌▄
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