255,036 Commits over 3,990 Days - 2.66cph!
Art Progress + add reception
Improve player spawn performance, by enabling/disabling player go instead of destroy/create
Before:
Function Name: GameManager.SpawnPlayer
Number of Functions: 22
Average: 9ms 448µs
Median: 8ms 353µs
After:
Function Name: GameManager.SpawnPlayer
Number of Functions: 21
Average: 4ms 945µs
Median: 4ms 870µs
Added CodeEditor.CanOpenFile. Don't show "Jump to Code" on internal Components/Assets/Properties. Resolves Facepunch/sbox-issues#7579
Groundwork for active lobby info and get / set metadata for lobbies. Dedicated server, tcp and p2p support
CreateLobby async returns active lobby
Fixes
Protocol++
Added CursorShape.Finger to DropdownControlWidget. Resolves Facepunch/sbox-issues#7681
Add CursorShape.Finger and hover effects to ControlSheetGroup
Add Right Click -> Jump to Code for ToggleGroups. Resolves Facepunch/sbox-issues#7630
Track object messages and RPC stats and display the top 10 in the top left when net_debug is enabled
merge from fast_debug_draw (fix shader on metal)
Update: ServerDemoPlayer - report errors if failing to find entities
Need to verify if my previous changes are working in more complex scenarios.
Tests: none, trivial change
Keep everything nicely contained in NetworkDebugSystem
VR: Fix toggling VR inside the editor after launch
fast debug draw: skip geometry shader on metal
Improved shotgun worldmodel orientation
Charge station informs the host when trying to charge
Add NodeResultType and new constructor for NodeResult that takes NodeResultType. Resolves Facepunch/sbox-issues#7684
Remove angular-ui, jquery-ui, jquery-color (#2219)
experimentally routing calls to queries from a non-burst context to run a burst compiled job on the main thread and calls from burst contexts to directly run the code
- uses a mixture of BurstDiscard and compiler hints to avoid compiling any branching into burst-compiled code
- twice as fast than just burst compiling the function calls and calling it directly from managed/non-managed contexts
- at least 10x faster for larger queries in worst cases (empty grid) and negligable difference for small queries
Added some polygons to the cooking workbench liquid bottle that was looking a little PS2.
Update: FullServerDemo - detect full network ID range used in demo
Replaces old invalid system of just reserving a constant chunk
Tests: played back all demos that I have - all valid.
Add terrain blend layer to standard 4-way and packed mask blend, reduce terrain sampler slot usage
▋▉█▋▄▉█ ▉▄▊▆▉▇▍▅ ▆▌▆▄▉▄ ▇█▋ ▄▇▇▊▉▍▄▉, █▋▍▄▅▋▄ ▉▍▆ ▋▆▇█▄▇▆▄ ▌▊▍▍
HostSync HasLongJumpModule
Trigger long jump on IPlayerEvent.OnJump
Interior set dressing, tweaks to floor material in zigg scene
mauritia flexuosa M variant with LODs and billboard, materials initial commit
Standalone: differentiate between failing to copy (e.g. no disk space) and not finding a file
Standalone: locate code resources in non-core locations (e.g. addons/base), fixes a couple of missing files
Standalone: tweak wizard layout to move all executable stuff together
Standalone: clean up exporter code, move into its own folder
Standalone: fix base assets path
Standalone: remove IsDevelopmentBuild and Version, move VersionDate to BuildDate & make it implicit
Show top 10 object messages by total calls then by total bytes received in top left when net_debug is true ( https://files.facepunch.com/conna/1b1911b1/sbox_OEOfBa3MKH.png )
Revert "Fix SSAO parameters"
This reverts commit f3cba20a068d33cdab6629141c817eaef816ebc4.
▅█▉▆▍▇▇ ▄▆▄ ▄▄ ▉▆▆▍▍▍ ▌▌▅▊▆▇▇▌▆▇ ▉▇ █▊▊▉▉▋▇ ▍▌▉▉ ▆▋█ ▊▆▊▆▉▅▄
Pipe and Flashlight compile update
Temporarily disabling DLSS/DLAA due to crashes
Update: FullServerDemo - support client RPCs for transient entities
Implemented via an extra parse of demo stream, but should be okay since it's an editor-only process.
Tests: Played the same demo where I collected wood - previously it quietly failed, now player got attributed resources.
Refactor sandbox hints (#2218)
* Clean up comments
* Stop using deprecated `GetConVarNumber`
* Use string.gsub's function mode for binding lookups
```
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> text = "foo %+one% bar %+two% baz %+three%"
> function replacer(res)
print("replacer!", res)
return string.upper(res)
end
> print(string.gsub(text, "%%([^%%]+)%%", replacer))
replacer! +one
replacer! +two
replacer! +three
foo +ONE bar +TWO baz +THREE 3
```
* Formatting
* Update cl_hints.lua
---------
Co-authored-by: Rubat <3299036+robotboy655@users.noreply.github.com>
Start by storing incoming RPCs by name, increment total calls, total size, and build an average message size
Track other messages too like spawn and destroy messages and their frequency. Add a temporary command to log the top 10
Connection.GetUserData will now work for any client - not just the host. ConVars marked with ConVarFlags.UserInfo will update for all clients when changed. Updated ConnectionInfo string table to store values individually so when one changes it doesn't send the whole lot again.
We can now include ping in the string table so that Connection.Ping should be correct even if you aren't the host
Untangle hornet projectile firemode, fix player targeting
Spit out little fishes from my big fish
Disable hornet projectile collision sounds
▇▆▌▍▍▋▇█▌▄▍█▄ ▉▉▄▇▅▉_▉▊▍▇_▉▆▋▌▉▉██_▋▆▇▊▆▆█
Continuing work on zigg scene
▇▊██▄▄██▊▆█▌▊ ▉▅▋█▌█_▌██▄▌▄█▅▆_▍▌▊▆█
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
Corpse inventory saving/loading
Added workbench corpse
WIP motion editor rewrite
merge from terrain_ignore_grid
Added GibSimulator, tool to simulate gib physics in edit mode - helps creating container corpse prefab
Not tied to Gibbable for now, still wip
Include IsExplosion in DamageInfo conversions
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
Update: FullServerDemo - try to handle transient(not in the savefile) Entities
- Record an entity snapshot once per demo chunk if sending specific messages - Positions, Flags, RPC(both server-sending and recieving)
- DemoTransientEntities are not sent if we've sent an entity snapshot via Entities message during active chunk
- Fixed not handling demo messages that can have 0 connections associated with it
- Fixed incorrectly aborting on "unknown" message type when types are related to demo-specific messages.
In theory this should allow us to avoid missing entities scenarios when playing back, which helps with determinism. But the server-recieving-RPC scenario needs more work - we record the transient snapshot after we recorded an RPC from the client, so I need to implement look-ahead in demo playback (or do what client demo playback does and index the demo).
Tests: on Craggy in editor recorded a full server demo where I'm looting a wood-collectible. During playback it spawns, but doesn't get removed