496 Commits over 334 Days - 0.06cph!
Discard ShootEffects if the player's already dead
Show scoreboard ping in ms
PlayerData.Ping pulls from Connection.Ping instead of syncing from host now we can do that
Steamline OnDeath events a bit, highlight killfeed events involving us
Discard TraceAttack if the player's already dead
HostSync HasLongJumpModule
Trigger long jump on IPlayerEvent.OnJump
Untangle hornet projectile firemode, fix player targeting
Spit out little fishes from my big fish
Disable hornet projectile collision sounds
Fix crossbow projectile not dealing damage, better handling for projectile clientside hitmarkers
Rename Projectile.Explode -> OnHit
Move hardcoded projectile/particles collision ignore to collision rules
Do hornet damage on host
Tweak hornet bounce math, prevent phys from changing orientation
Give hornet some stupid and wet sounds, fix alt fire
Track projectile owning player, ignore collisions based on that and not time
Add Sandbox.Diagnostics global using
Inflict damage thru IDamageable.Damage extension, complain when we're doing silly things
Run fall damage on host
Do explosives on host
We don't want to Broadcast this
Perform gluon damage at intervals, not every frame (!)
Add infinite ammo cvar (sbdm.infammo)
Add BaseCarryable.OnEquipped/OnHolstered so that's more obvious
Streamline gluon networking, don't rpc the beam fx let everyone update that on their end
Refactor item pickups, streamline logic/validation
Fix hornetgun using rpg AmmoResource
Disable pickup collider when not active
Smite GiveHealth/GiveArmour
Just rpc PickupNotice to the owner
Snip dodgy GetHashCode override, make sure inventory slots are rebuilt when contents change
Stop gluon fx, gauss chargeup on disabled not destroy
Use PlayerData.All when spawning players on StartGame, some may be connected but not yet active
Disable gluon beam shadows
Prevent negative gluon beam length
Stop gluon gun white noise machine
Gluon hitmarkers
Add godmode cmd
Hornet gun: hitmarkers on projectile explode
Standardise "Find in Asset Browser" and "Open File Location" option logic, create a browser if needed, raise tab into view
Rename "Open File Location" to "Go to Location" so I stop confusing it with the one that opens it in explorer
Snip 2nd collider on ejected 9mm casings, reduce lifetime to 10s
Add "No Source" asset tag for compiled assets without source files, resolves Facepunch/sbox-issues#7606
Set Project.Current as soon as it's active
Add "Published" asset tag for assets that've been enabled for publishing, Facepunch/sbox-issues#7604
Asset Browser: Tag filter chips will show highlighted when active, and let you disable them
https://files.facepunch.com/solw/2025/February/14_18-14-CheapOstrich.png
Asset Browser: Get tag filters via the search widget working until we replace this with something better
Split cmd and args input by space, don't prematurely de-quote args, resolves Facepunch/sbox-issues#7611
Add [SkipHotload] to RcSortedQueue comparator
Fix exception when bots pick up weapons
Swap !IsProxy && !IsBot checks for Player.IsLocalPlayer
Don't show bots hitmarkers on my screen
Require DropOwnership() to clear owner instead, document exception
Calling Network.AssignOwnership with a null connection will pass empty guid instead of throwing NRE
Replace SteamId usage with PlayerId (unique per connection and bot), streamline spawning logic
Don't draw bots hud vitals on my screen
Just reference PlayerData instead of keeping two copies of all this, looking it up etc
Tidy up death logs, don't double up
Remove logic to migrate from old project cookie, editor layout locations
Fix default layout raising cloud browser, do asset browser instead
Default WindowedLocalInstances preference to true
Do InputRouter::OnWindowActive based on engine window (not app) focus, fixes click-to-focus going thru as an input and shooting or whatever
Update mouse capture position if we get new absolute pos while locked (eg when unfocused, tabbed)
Keeps cursor position predictable/reliable, stops occasional out of date position being restored and yeeting my mouse across the screen
Only SetCursorPosition while engine window's got mouse focus, prevents unwanted movement in editor
MapInstance also reloads the map on Hammer compile when it prev. failed to load
Toggleable weapon autoswitch when picking up something better #92 (player.autowepswitch cvar)
Fix NRE when killing self
InventorySlot IsValid check
Shotgun uses correct muzzle transform
Hook up Sound.Play delay parameter
AssetPreviewWidget builds dynamic layout, passes parent widget correctly
Add SoundPlayer, use as preview widget for sound files
https://files.facepunch.com/solw/2025/January/30_11-51-FarflungUrubu.png
PreviewSound automatically plays from 0,0
Remove opaque automatic sound playback from AssetList
Fix exception when pasting into TextEntry with MaxLength, resolves Facepunch/sbox-issues#7442
Add StatusBar to GenericPicker
SceneViewport dolly zoom is timescale independent, resolves Facepunch/sbox-issues#7454
AssetList displays hovered asset/directory path in window status bar for all display modes
Show un-normalised path as AssetList status text
Hierarchy: Exiting search expands to new selection, resolves Facepunch/sbox-issues#7453
TreeView.RecursiveLayout compares TargetObject correctly, fixes TreeView.ScrollTo
FloatControlWidget keeps the drag delta intact, fixes janky drag on int controls
Add Texture.LoadAsync using AsyncResourceLoader
Add TexturePicker
Add PickerOptions.InitialSearchText, populate from native params
TexturePicker uses InitialSearchText so it starts filtered to _normal/_ao/etc where that's handy
Stop "Create Sound Event" pranking people by opening to the wrong directory, resolves Facepunch/sbox-issues#7421
Add support for custom specialised asset pickers per-resource type via AssetPickerAttribute
Add SimplePicker, use for shaders until we get something better so that's not awful to use
https://files.facepunch.com/solw/2025/January/20_13-12-GentlePinkriverdolphin.png
Unbreak asset inspectors for some resource types, resolves Facepunch/sbox-issues#7382
Add 'jump to code' asset inspector toolbar shortcut for custom resource types
Swap dead wiki page link for docs url
Use [IconName] for PrefabFile.MenuIcon
Custom resource types will inherit custom editors of base types if they've not got one
Can drag/drop files and folders onto path widget segments to copy/move there
Update qt for windows drag/drop cancel crash fix
More IsValid safety checks for drag/drop events
Fix crash when drag drop is cancelled/cleaned up before windows callback
Gradient editor: add buttons to select next/previous point without pixel picking faff
Gradient editor: clear point selection when whole gradient changes, make reverse work properly aha
Gradient editor: Tweak point drawing for better legibility
Clamp point location to 0-1 when adding to gradient
Gradient editor: add shortcuts to reverse, distribute points evenly, clear to white
Add presets to gradient editor, ux improvements
https://files.facepunch.com/solw/2025/January/10_14-37-SolidUintagroundsquirrel.png
Prevent gradient editor colour points having alpha value
Support photoshop-style sampling of gradient color under cursor
https://files.facepunch.com/solw/2025/January/10_15-21-RemorsefulAsianlion.png
Fix being able to create new gradient point with a negative location
Add context menu to GradientControlWidget