4,794 Commits over 1,371 Days - 0.15cph!
Keepe additional leg bones
Fixed animated legs (keep additional bones)
Prevent pickup flag for 1s after drop. Victory screen tweaks.
Pulsar will do 25% less damage to its owner - ez speed boost
Add Accuracy to Turret Asset. Various UI fixes.
Revert "Only update (run pending events, tick, scroll velocity) after render once - reset that flag on hotload if render tree becomes dirty"
This reverts commit aae36e1777d11a5649c24985c0f8802ced3397b4.
Only update (run pending events, tick, scroll velocity) after render once - reset that flag on hotload if render tree becomes dirty
Max 32 chars for ident edit, don't show sandbox gamemode twice
Add icons for all file menu items
Add "Open in Editor" context menu option to ProjectRow, shows up for library/tools/addon projects
Make StartScreen a BaseWindow, add HasMaximizeButton
Add modal package selector to main menu, use `Game.Overlay.ShowPackageSelector( query, onSelect )` https://files.facepunch.com/tony/1b1811b1/sbox_0pbOdyXzXM.mp4
Don't clean up Release path when running processor codegen shit, fixes razor gen when testing release builds
Revert "Don't clean up Release path when running processor codegen shit, fixes razor gen when testing release builds"
This reverts commit 738d6ef11f5591743600177ff476b7d5138f9741.
Trace.RunAll() - return empty array instead of null for no results
Fix copying text throwing exception
Use s&box logo as window icon for welcome screen 👋
Don't spam Draw: No Material Mode? from RenderTools::Draw, it's valid for there to be no valid mode when you're under tool vis modes
Fix crash when dragging cloud models quickly in/out of MapView
Merge branch 'master' into render-frag-ref-fix
Update surfaces to json, fix friction (why did it break),
Upgrade materials, CurrentGamePage uses same styling
Defer OnAfterTreeRender until end of tick to ensure children processed first and references set
Fixed all the materials finally (thanks Louie!!!)
Start updating to use Stats/Leaderboard API
Razor changes for IDE, untrack csproj
Fix setting GameLobby.ConVars not checking correct key for input
Remove Map options for Game projects (this stuff to be handled in game menus only in future)
Remove map select stuff from LaunchConfig
Remove validate map stuff from GameMenuInstance
Obsolete ValidateMap, MapSelectionMode and MapList
Use enclosing block statements
Compiled map, css cleanup
Update razor code to put single-statement code in braces so Rider doesn't moan. Fixed map, update all references for models used on Asset Party.
Don't try to join our own lobby, and dont find if we're at max members
Don't try to join another available lobby if we're in one that is loading
maybe try enterserverasync?
Start adding pool main menu
Scene renderer for pool map
Update map refs
Add different carpet texture
Try a different carpet texture
Background move + some restyle
Map change
Join or create lobby
Always try to find new lobbies
Various other style tweaks, try to fix lobby join
Try launch game
Style tweaks add map content
Only join open lobbies
Delete SceneRenderer, use webm video
Menu tweaks, use background image for webm
Scrape Effects (#1139)
* Add props to Surface for impact decal and scrape effects / decals
* Use ContactPoint + SurfaceNormal to pass into AddImpactSound
* Let's add decals and particle effects for impacts but try only doing it if speed > 30 - maybe we configure this per surface?
* Add PhysicsImpact struct and use that to seperate effects for Hard and Soft impacts in Surface description (decals + fx)
* Correctly spawn soft or hard physics impact particles + decals based on squared speed
* Add normal from first valid manifold on contact to friction events to pass to C#
* Enable/Disable physics impacts and scrape events as props for now, pass normal from fiction event to AddFrictionSound and create effects where necessary
* Also grab contact center from first manifold and pass to C#
* Use contact pos for decals + effects, try to base effect frequency on energy volume scale, fix decal placement remove particles on friction effect stop
* Set destroy time to 0.5 (this is a failsafe anyway)
* Don't have particles follow entity, do it ourselves so we can set to actual contact pos
* Set forward for scrape particles to contact normal
* Use method for getting inherited surface values if necessary to avoid repeating same code
* Add Mass and Direction named control points for friction particles. Mass is body mass, direction is body velocity normal. CP0 is already setting position and contact normal
* Lower destroy time for effects
* Reorganize scrape data in surface def, lower default values. Don't fallback to rough by default. If it's a smooth scrape and there's no effects for that - do nothing by default
* Surface is considered smooth by default, can set roughness factor higher for rough surfaces...
* Get material for triangle by index for shape 2 on friction events should fix all friction events against world surfaces having hit surface be "default"
* Store friction hit surface (last) and if we've changed hit surface stop any previous effects and sounds
* Remove unused prop
* Remove unused var
* Make EnableScrapeEffects and EnableImpactEffects internal for now
* Make FrictionEffects a dictionary
* Call PhysicsGameSystem.Shutdown on GameLoop shutdown to ensure vars cleared
* Add an Intensity named control point value (0-1) for scrape particle effects to use
Recompile materials maybe that'll help... remove +iv_ from tips
Set default value if property does not exist in AddDictionaryPropertyInt as we do in AddDictionaryProperty<T>
Fixed resources / materials again..
Add an Intensity named control point value (0-1) for scrape particle effects to use
Make EnableScrapeEffects and EnableImpactEffects internal for now
Make FrictionEffects a dictionary
Call PhysicsGameSystem.Shutdown on GameLoop shutdown to ensure vars cleared
TickRate Project Settings (#1134)
* TickRate project settings
* Def tick rate 50 as it was
* Obsolete Game.TickRate.set
* take tickrate stuff out of serverconfig
Defer removing entity from entities list on destroy
Don't process state update if we already processed one newer than that