22,539 Commits over 1,614 Days - 0.58cph!
Validate AddonSelectorDialog org thumb - we've got 3 panels doing the same thing here, I'll unify them in the next couple of days
Validate organization thumbnails for asset.party selectors
backup material builder incase changing features after material creation doesn't make sense
Add SetRemoteDestination to trigger_teleport
Fixed certain assets showing 2 icons in the browser
AssetType.PrefersIconForThumbnail is now set correctly
Remaining asset type/system docs
AssetSystem & GameData docs
Sort asset references in inspector by type and name
Makes it easier to see what's what. Also reduced vertical whitespace a bit.
Added confirmation popups for deletion of assets/projects
This also lets the user know what exactly will happen to the asset and project files upon removal/deletion.
fixed holes and added LODs to the telegraph pole
Don't save color states, just parse it from variable state
Fixed text panels not updating when string changed
Style & layout arrangements
Group items by subcategory
Give glasses and necklace a subcategory
Tweaks
Clear background image if setting to a missing/invalid image
Add Package.FindAsync (new api) replaces Package.Query
Only compile runtime local addons if they need compiling
Load runtime addon resources on activate (so sounds work etc)
Add active property to button
Don't render game ui in VR, it showing was a regression from render hooks. We can revisit this if we end up doing a separate desktop view for VR games
Added PhysicsBody.SurfaceMaterial, deprecated SetSurface/GetDominantSurface
Obsolete Entity.IsFollowingEntity & FollowedEntity
Documentation & cleanups
Launcher: when adding local game config, append game ident with #local, fixes not loading into the correct games
ScenePortal docs
Entity bone methods throw on out of bounds input
Updated the Project Page to use game selectors for Game Support, Parent Game and Target Game instead of having to manually enter semi-colon separated values
Merge branch 'master' into custom-client-input
Ensure custom selector properties are reset when new project is selected + fix for QWidget error if Update is called at end of async FetchPackages method but widget is no longer valid
Merge branch 'master' into custom-client-input
Menu is allowed to access engine convars - unfucks all the settings menus
Use TryGetMeta instead of being a nob
Merge branch 'master' of github.com:Facepunch/sbox
Merge branch 'master' into custom-client-input
Use TryGetMeta instead of being a nob
Merge branch 'master' of github.com:Facepunch/sbox
Menu is allowed to access engine convars - unfucks all the settings menus
Ensure custom selector properties are reset when new project is selected + fix for QWidget error if Update is called at end of async FetchPackages method but widget is no longer valid
Updated the Project Page to use game selectors for Game Support, Parent Game and Target Game instead of having to manually enter semi-colon separated values
Get default, min and max values of variable desc
Set slider property default and min max values
Set checkbox property default
Editor window and preview widget
Fix material adding duplicate params
Get material description, as json
Build features description for material
Serialize feature descriptions
Features list UI https://files.facepunch.com/layla/1b0911b1/sbox_AQUvbCPcCn.mp4
group combo and label (really should make a radio selection widget for this)
Remove GetKV3MaterialDescription binding
Grab variable descriptions based on feature state
Add group to variable description
Display variables
Decode sort key (todo: do this in C#)
Only show variable groups that have at least one enabled variable, don't create widget for disabled variable
Add state cookie to variable list expanders
Sort variable groups
Create property widgets for variables
Create correct property widgets for variables
Custom tab widget to tab multiple sessions
Try to grab feature state from material
Move material editing to a session class so we can have multiple sessions going at once
Don't add duplicate variable desc to kv3, don't know why these are showing up, probably because I'm not recompiling material on feature change
Bind CompileAndReplaceResource and DiscardInMemoryReplacement
Discard in memory replacement on session close
Create new tab for new sessions
Get active session from current tab page
Change preview material on session change
Allow Material.Create to set feature states
Only skip duplicate variable descs that are disabled (no idea why there are duplicates in the first place)
Recreate new unsaved materials when features change
Don't update material variables through events
Switch tab when adding new session
Allow sessions to be closed
Process in memory compile reload requests after replacing resource
Add dummy material in core for material editor to piggy back off of
Recompile material when features or textures change
Recompile material on session change
Include params in replacement resource
Don't forget checkboxes
Undo passing features to Material.Create, no longer using this for material editor
Restore texture property state when rebuilding variable list
Do the same for color, float and checkbox properties
Build material output so we can save it, check against feature and variable desc for what key values should be output
Allow tab pages to be closeable or not
Save session to file, register asset
Format colors and floats so old material editor can read them
Reset session preview on hotload, fixes preview breaking on hotload
Switch page after on page close callback so we don't stomp material with replacement discard
Only discard replacement if asset isn't being used in another session
Include session name in window title
Fix non closable pages not switching
Add raw output tab
Fix NRE adding new session, keep a copy of material output
Use text edit for output
Hook up menu bar to actions
Menu bar shortcuts
Open file dialog
Create session for opened material
Parse material to get feature and variable states
Parse color states
Add new line after every variable group in output
Remove Material.GetFeaturesState, parse material in tool code instead
Allow modified material to be saved
Do a recompile before saving, resource replacement is getting stomped
Dock the preview, might want to have it fullscreen
ScenePortal docs
Entity bone methods throw on out of bounds input
Launcher: when adding local game config, append game ident with #local, fixes not loading into the correct games
Fix Shape Buffer not being generated and being cleared at wrong moment
Prototype directional AO, fix reflections not showing up on shaders
Send proxy mesh info as proper capsules rather than ellipsoids (which has always been silly), unify debug overlay code for them
implement capsules in shader, encode directionality https://i.imgur.com/RMaTU6Q.png
Implement capsule shape on reflections too
https://i.imgur.com/ZEf0dxa.png
Unify all aoproxy code so it's not a mess all around, makes it easier to add new shape types, add stubs for cylinder aoproxies
Cylinder aoproxy meshes https://i.imgur.com/T36lRDH.png
Dot product with geometric normals to avoid double occlusion on AO, fixes most artifacts
Remove edge artifacting with ambient shadows
https://i.imgur.com/GV8SXq3.png
Misc tweaks and fixes, set default AO distance to 40, better self occlusion filter
Move reflection compositing code to base code, add option to check if high quality reflctions are enabled to shader without a combo
Disable aoproxy caching on models with animgraphs
update shader objects
Cleanup, better do vignietting
Finish directional AO code before cleanup, use lightmap directionality if we are compositing to one
Fix aoproxy shapes of most standard props
Add support for high quality reflections in Complex shader
Add high quality reflection option to complex
Cleanup directional AO, have softer vigniette
Some more prop aoproxy adjustments
Fix flickering on directional AO probes
Readd AOProxy instancing, batch AOProxies by LPV
Increase precision of SDF tracing
Cleanup directional AO, have softer vigniette
Some more prop aoproxy adjustments
Fix flickering on directional AO probes
Readd AOProxy instancing, batch AOProxies by LPV
Increase precision of SDF tracing
Added PhysicsBody.SurfaceMaterial, deprecated SetSurface/GetDominantSurface
Obsolete Entity.IsFollowingEntity & FollowedEntity
Documentation & cleanups
Don't render game ui in VR, it showing was a regression from render hooks. We can revisit this if we end up doing a separate desktop view for VR games
Clear background image if setting to a missing/invalid image
Add Package.FindAsync (new api) replaces Package.Query
Only compile runtime local addons if they need compiling
Load runtime addon resources on activate (so sounds work etc)
Add active property to button
Add Client.IsFriend
Fix compiler not finding runtime game dll when compiling runtime addon
Can get TypeDescription by fullname (namespace.typename)
Runtime addons can define their primary class
Fixed codegen removing all namespaces in generated files
This is primarily for property initializers
Properly fix codegen removing all namespaces
Load System.Security.Cryptography.Algorithms.dll, System.Security.Cryptography.Primitives.dll - and whitelist System.Security.Cryptography
System.Net.WebSockets for tool addons
Greatly increase depth precision for world, fix decals in VR, don't do viewmodel offsetting at all on VR
Fix Undefined Behaviour In Tiled Rendering
vr: make debugoverlay work on right-eye again, don't constantly change render target to swapchain
vr: debugoverlay behaves properly for multiview instancing now too
Outfit Reskins Variations + LODs
Update shaders with adjustments for tiled rendering
projected decal shader: adjust the instance id under multiview instancing so it actually appears in the right eye - decal space position still seems off though
Release shader for projected decals
Get rid of anaglyph and parallel stereo rendering modes
r_stereo_multiview_instancing: default 1, same as VR
Add Debug menu options for stereo rendering to the editor ( easy way to see if your game renders properly in VR )
Local packages untangled from remote packages
Local packages now end in #local and are completely separate from remote packages. This means you don't have to disable your game project to test the published version. It also means your launch configs are now broken. To fix just go in the config for each one and set them back up.
I've updated the Game list page to razor so we could have the local game tab.
Don't bother with multiview instancing unless we explicitely want it, previous behaviour was to always ignore it even when we wanted it, fixes decals and other stuff in VR
Fix r_stereo_multiview_instancing affecting non stereo rendering
projected decals: small compile fix for shader
Clothing Texture Variations + Makeup
Merge branch 'master' of sbox
release shaders for projected decals - should fully behave in VR now
Update sentry-native 0.5.2, add Crashpad WER handler which bypasses SEH to handle __fastfail and stack buffer overrun crashes
vr: particle renderer don't initialize 4x vbos for instancing, only need 2x
vr: fix cables renderer adjusting the transform id the wrong way, cables will render in right eye again
Launcher: first draft for selecting addons for game configurations https://files.facepunch.com/devultj/1b1611b1/sbox_pbcF7SRE4R.mp4
Less debug spam
Switch to new find/get api endpoints
Don't use localhost api - I knew I was gonna do this eventually
Unfuck VR culling frustum which was causing scene objects to get rejected thinking they were only visible on 0.1% of the screen
vr: don't transform hand's angular velocity to anchored pose, it's not something you want or expect to be affected by it
Fix Panel.OnParametersSet getting called twice
Hammer: Try to guess static overlay projection distance from scaling
more crash fix for when m_pInterpolatedBoneTransformWeights is nullptr, missed checking the src
vr: controller poses scale properly with VR.Scale now, so your hands are where you expect them
Add GetName & Count to MorphCollection
Extra info for ModelEntity.SetMaterialOverride overlaods
Fix incorrect blending on spritecard, makes render scene test pass
Fix tags not going to the datatable on client only entities, stopping collisions and traces working properly
adjusted bird_spikes size to be grid size+ LOD tweak
tweaked bird_spikes LOD2
tweak ad board to have the glass on the grid and reduce z-fight on LODs
Sprite card compiled shader with fixes
https://i.imgur.com/B1O3Eqc.png
Revert "Sprite card compiled shader with fixes"
This reverts commit ed5cfdcc2bd94d525dc48e55373bad7f0889747f.
Fix typo on spritecard
We only need to rebuild the panel's box if yoga or our parent position changed
Add checker for HasNewLayout
Don't try to cache null packages
Fix transitions causing recursive selector checks
Speed up HasClasses
Refactor Panel system so PreLayout only recurses when it really really needs to
Only call FinalLayout if we need to
https://files.facepunch.com/garry/8df37b66-e43c-4c46-9123-022f6888b7e7.png
Fix backwards compatibility
Fix exception with "say" on dedicated servers
vr: controllers linear velocity affected by VR.Scale too
RenderHook works in VR as you'd expect without needing to do anything, passing the multiview instancing combo as expected ( doesn't fuck up through monitors either too )
Viewmodels can multiview instance, not really useful but less annoying in debug
Merge branch 'master' into custom-client-input
RenderHook works in VR as you'd expect without needing to do anything, passing the multiview instancing combo as expected ( doesn't fuck up through monitors either too )
Viewmodels can multiview instance, not really useful but less annoying in debug
vr: controllers linear velocity affected by VR.Scale too
Fix exception with "say" on dedicated servers
We only need to rebuild the panel's box if yoga or our parent position changed
Add checker for HasNewLayout
Don't try to cache null packages
Fix transitions causing recursive selector checks
Speed up HasClasses
Refactor Panel system so PreLayout only recurses when it really really needs to
Only call FinalLayout if we need to
https://files.facepunch.com/garry/8df37b66-e43c-4c46-9123-022f6888b7e7.png
Fix backwards compatibility
Revert "Sprite card compiled shader with fixes"
This reverts commit ed5cfdcc2bd94d525dc48e55373bad7f0889747f.
Fix typo on spritecard
Fix aoproxy shapes of most standard props
Add support for high quality reflections in Complex shader
Add high quality reflection option to complex
Sprite card compiled shader with fixes
https://i.imgur.com/B1O3Eqc.png
tweak ad board to have the glass on the grid and reduce z-fight on LODs
adjusted bird_spikes size to be grid size+ LOD tweak
Dock the preview, might want to have it fullscreen
Allow modified material to be saved
Do a recompile before saving, resource replacement is getting stomped
Remove Material.GetFeaturesState, parse material in tool code instead
Create session for opened material
Parse material to get feature and variable states
Parse color states
Add new line after every variable group in output
Hook up menu bar to actions
Menu bar shortcuts
Open file dialog
Fix NRE adding new session, keep a copy of material output
Include session name in window title
Fix non closable pages not switching
Add raw output tab
Only discard replacement if asset isn't being used in another session
Build material output so we can save it, check against feature and variable desc for what key values should be output
Allow tab pages to be closeable or not
Save session to file, register asset
Format colors and floats so old material editor can read them
Reset session preview on hotload, fixes preview breaking on hotload
Switch page after on page close callback so we don't stomp material with replacement discard
Fix tags not going to the datatable on client only entities, stopping collisions and traces working properly
Fix incorrect blending on spritecard, makes render scene test pass
Add GetName & Count to MorphCollection
Extra info for ModelEntity.SetMaterialOverride overlaods
vr: controller poses scale properly with VR.Scale now, so your hands are where you expect them