20,775 Commits over 1,522 Days - 0.57cph!
Prefab preload: preload into a dummy scene
Revert "Populate Json reflection cache in Json.Initialize"
This reverts commit c0f2f57fc0a12a43ca0b73f3e3bf934a260bd69b.
We don't need this if we preload prefabs
Preload all prefabs when loading a scene
Add ParticleModelRenderer
Restore skeleton compile to how it used to be, we're missing optimizations by just keeping every bone no matter what
Fix LineRenderer bug
ParticleFloat, ParticleGradient have evaluations where you pass in the particle , which reduces the risk of fucking up the parameters
Move ParticleRenderer's into own folder
ParticleController has OnParticleCreated
Add Particle.BaseListener - allows creating of classes that run on particle create, update and destroy - with instance data and guaranteed destroy
Add ParticleLightRenderer
Fix bug in capsule tracing, fixes picker in modeldoc when using capsules
Fix IBL not working, Transparency in AmbientColor is used to lerp between artist's decided flat color and IBL/GI, defaults to GI
AmbientLight component defaults to Gray color
Don't implicitly set zfar as infinity, if we want to do so we can do from C# side, but make it respect what we pass as zfar
LineRenderer has a UseVectorPoints option
Fix Json.PopulateReflectionCache
JsonTypeInfos would only be stored if the JsonSerializerOptions is immutable
Add serialization_warn_time con var
https://files.facepunch.com/ziks/2024-07-24/sbox-dev_0DtqgKK1dt.png
Fix for AO outline
AO moved in PP to post-transparent to ensure that sky-dome is rendered before AO
Merge branch 'master' of sbox
Tidy and make some context menus more consistent, prevent selecting unworkable options, add hierarchal path support to create asset menus
Mark `MenuAttribute.Shortcut` as Obsolete. Get identifier from `[Shortcut]` attribute if one exists.
Update Shortcut value in AssetInspector
Display shortcuts on Tool and Subtool buttons without need for ShortcutAttribute on the class
Download from server (#1632)
Download game asset files from the server, when not using a package. This allows people to make "local only" games and test them locally and multiplayer.
In the future we can change the download method to upload and download from our backend instead of over network.
Simplify RedirectFileSystem, fix not mounting
Fix number keys not working
Create keybinds for the different Tools now that Editor.Shortcut is internal
Create keybinds for the different subtools for the same reason
Add LargeNetworkFiles table
No network files needed for remote packages
File download framework
Add Connection.SendRequest<T> - allows async waiting for a response to a specific message, instead of routing through global handlers
Request files loop
Fix filesystems not clearing properly between games
Download required files from server
Move the asset download cache to a single purpose class
Respect JsonIgnoreAttribute when serializing component properties
We were already checking it for fields
Revert "Add LargeNetworkFiles table"
This reverts commit 7365c616af37ef1665abe4961344013815e89b70.
Accidentally rebased master onto a branch - Metapyziks
Fix warnings in ParticleVector3ControlWidget
Fix some download toasts sticking around forever, and incorrectly displaying as cancelled
Populate Json reflection cache in Json.Initialize
We were seeing some long frame times during first-time prefab instantiation caused by this
Do panel bind/parameter events when things change even if tree is empty, Facepunch/sbox-issues#5908
Custom panels that do stuff/populate from attributes etc should work again now, incl settings page
Don't use internal message type for changing level
Fixed retry logic
Docs
Merge branch 'master' into local_files
Merge fixes
Merge branch 'master' into local_files
Move the asset download cache to a single purpose class
WIP adding simplified interface
ditto
Fix Function Keys not being sent when in-game since it was checking for a console bind instead of keybind
Don't use internal message type for changing level
Fixed retry logic
Docs
Remove `Editor.Option.ShortcutContext`
Strip native shortcuts from `Editor.Shortcut` class. Make class internal.
Documentation cleanup
Update Shortcut.Invoke so it handles Mode logic
EditorShortcut.Invoke is now a bool returning whether or not a shortcut was invoked from the pressed keys
Shortcuts are now invoked from Sandbox.Tools instead of thru native QT shortcut.
Make `scene.fullscreen` (F4) bind static. Fixes rebuilding issue.
Fix filesystems not clearing properly between games
Download required files from server
Do panel bind/parameter events when things change even if tree is empty, Facepunch/sbox-issues#5908
Custom panels that do stuff/populate from attributes etc should work again now, incl settings page
Populate Json reflection cache in Json.Initialize
We were seeing some long frame times during first-time prefab instantiation caused by this
No network files needed for remote packages
File download framework
Add Connection.SendRequest<T> - allows async waiting for a response to a specific message, instead of routing through global handlers
Request files loop
Fix some download toasts sticking around forever, and incorrectly displaying as cancelled
Fix warnings in ParticleVector3ControlWidget
Revert "Add LargeNetworkFiles table"
This reverts commit 7365c616af37ef1665abe4961344013815e89b70.
Accidentally rebased master onto a branch - Metapyziks
Add LargeNetworkFiles table
Respect JsonIgnoreAttribute when serializing component properties
We were already checking it for fields
Add LargeNetworkFiles table
Support more than 1 gamepad input action with the same button
Fix errors when first creating terrain, make sure it's all updated, don't render without storage
Only recreate clipmap if we have to, this takes time to build
Created EditorKeybinds.cs with a few starting keybinds
Move Keybinds into EditorPreferences since that makes more sense
Add RegisterShortcuts() function whenever shortcuts are registered and use the EditorPreferences keybind instead of hardcoded string
Added Editor Keybinds page to EditorPreferencesWindow
Subscribe all RegisterShortcut voids to keybinds.update EditorEvent
https://files.facepunch.com/CarsonKompon/2024/July/10_21-46-TautDuck.mp4
Create shortcut for EditorCycleViewMode
Make Keybinds page scrollable, add Reset to Default button, and add Are You Sure popup to Reset button
Use TitleAttribute for keybind names
https://files.facepunch.com/CarsonKompon/2024/July/10_22-23-FakeGourami.png
Add AllowModifiers to KeyBind widget, set to true for Editor Keybinds Page (Allows you to bind CTRL+SHIFT+ALT+Whatever)
Some FileOption binds, but they dont auto-update yet. Will need to find a good way to do that for Option entries
Call keybinds.update EditorEvent on Reset to Default
Created EditorShortcuts.cs to eventually replace EditorPreferences.Keybinds
Need to call this after EditorTypeLibrary is created
Register shortcuts elsewhere and remove some option shortcuts
Change default shortcut type
Register shortcuts on hotload
Convert some older shortcuts into the new [Shortcut] attribute
Change shortcut defaults
Update EditorShortcuts to include Identifier and Keys, including method to get current keys from overrides (player defined overrides)
Display [Shortcut] shortcuts in Editor Keybinds page instead of EditorPreferences.Keybinds
EditorShortcuts rebinding actually works now, much more lightweight than prior version
Make user overrides save properly
Get Name and Group properly, allow attributes to override.
Get keys from shortcut name in Option.cs
Allow non-static method shortcuts since there seems to be a good chunk of those
Stop feeding shortcut to Options for now
Fix size of Editor Keybinds page
Fix using the wrong widget for non-static shortcuts
Move EditorPreferences.Keybinds over to new [Shortcut] attribute system on each function
Completely remove EditorPreferences.Keybinds
Change name/groups for a few shortcuts
Order categories by name in PageKeybinds
Remove some debug logs
Create Texture Editor and Actiongraph shortcuts
Create ShaderGraph, Hotspot Editor and some more scene shortcuts
Add GameObject/Transform shortcuts and fix static method issues.
Made grid size shortcuts Window type instead of Widget type
Make all the different editors share a few binds (So there's not a Copy,Cut,Paste,Undo,Redo,ect. per-editor)
Make classes with [Shortcut] attribute properly rebindable (used for editortools)
Cleanup shortcut groups
Added individual Revert button when bind is different from the default
https://files.facepunch.com/CarsonKompon/2024/July/12_08-54-UnimportantTarantula.mp4
Qt Option now takes shortcut ident (eg. "editor.undo") and internally resolves bind (eg. "CTRL+Z"), updating when changed. No longer registers shortcut internally when set.
Shortcuts with Function Keys are always to editor even when Game Frame is in focus
F3 and F5 editor commands are now Shortcuts like everything else
Fix shortcut not displaying on Align To View option
Fix SaveMixer being static
Change "F5" -> "editor.toggle-play" on Play menu option
Cache the overrides so we don't have to keep checking against EditorCookie
Super minor cleanup
Rename Name -> DisplayName so there's no conflict on KeybindPanel
Fix ShortcutOverrides not loading properly
Use CodeToString(ButtonCode) instead of the weird enum parsing I was doing.
Wake touching when disabling a body, why would we not want to?
Some games rely on map having a collider
CollisionEventSystem has less reliance on Collider
MapInstance uses SceneMap instead of Map so it can manage it's own collision. Build collision from physics group desc instead of using CreateAggregateInstance
Fix map collider destroying body when it shouldn't, causing a crash when map physics aggregate is destroyed
For legacy hammer maps, take global volumetric fog scale from VolumetricFogController
Fix ortho lights in SceneMapLoader and custom shadow size, note that shadow culling will suck on ortho lights until we change tiled culling to use frusta
Don't allow zero quaternion in body transform, check against quat zero and use identity, if we find more invalid quaternions there's extra checks we can do
Use IsValid checks in AddShapeCollision, shape/body might have been removed from under us