1,586 Commits over 1,127 Days - 0.06cph!
Compile addons in tools
GameData.LoadEntitiesFromPackage works with addons
Save / load map entities' addon packages to meta data
Download and use addons specified by the map at runtime for local maps
Entity tool can use packaged addons tagged map + entity
Make Window.StatusBar able to handle late initialization of statusBar() - fixes Hammer asset browser assets disappearing due to native ptr in StatusBar being null
Remove DisplayInfo.For cache, it sucked hard under parallelization - after thinking about the best way to do it, it doesn't need to be done really.. Can use TypeLibrary.GetDescription<T>() instead where it's already cached
Fix Hammer Asset Browser not creating
Update Facepunch.SymStore to .NET 7
More diagnostics for TestAccessControl and OnAddonsCompile with scopes of each stage
Hammer: Selection API only supports object mode currently, fixes crashes using it when the active selection mode is non-object
Fix compiler refs to System.Security.Cryptography, in .NET 7 they've merged the 5 dlls into 1
Fix handle leak in RenderTools.ResolveDepth/FrameBuffer causing huge vram leaks when using glow
Actually hook up a count for TextureArrayBuilder to work..
Don't obsolete Texture.CreateArray, 2d texture arrays and 3d textures aren't the same thing
Fix SceneSunLight using invalid native pointer
Fix not being able to load maps by path, usually from launching map with Hammer or building cubemaps
Don't cock up MainAssetBrowser with double spacing
Hammer: Make default Asset Browser the C# one, label legacy as legacy and tuck it away in View -> Toolbars
Add Hammer specific locations to asset browser for Selected, In Map, Prefabs
https://files.facepunch.com/matt/1b2911b1/sbox_CTSLP9Ccz5.png
API Docs: Add event members
Hammer API: Add event Selection.OnChanged which fires when your selection set changes
Fix crash with Hammer.MapAsset when there's no map asset
Hammer Asset Browser: Add @selected and @inmap tag filters
https://files.facepunch.com/matt/1b2911b1/sbox_zPl9iqmF1Z.png
@selected shows map mesh materials too
Clarify addon's PrimaryType field
Fix editors (hammer, modeldoc, etc.) autosaves for files outside of the game directory
Fix GameData accepting inherited [HammerEntity] as a map class, it's explicit on every entity
Tools compile newly enabled games on localaddons.changed - tools need games compiled for GameData and GameResource assets
Rework how Tools.GameData handles new assemblies, only reloading entities from them and batch them to refresh, go from consuming 140ms -> 8ms on hotloads. Fix local packages and make older asset.party assemblies work.
DisplayInfo cache
Don't display deleted screenshots on asset home
Optimize Prediction.WasPredicted, iterate RpcHistory backwards to delete previous ticks
Don't Prediction.Watch when prediction isn't enabled, won't needlessly fill up RpcHistory when using the Sound system clientside only or any other ClientRpc systems
PackageSelector specify a query e.g type:game instead of Package.Type.Gamemode, fix Hammer Add Game showing all non-game packages too
Fix addons targeting local projects erroring - don't use #local in addon compiler references, there's code further down that will favour local package
If an addon doesn't target a specific game add a reference to base - Sandbox.Internal.AssemblyModifier seems to take care of all the references
Remove Compiler.ReportCompileDiagnostics - this was only used in non-tools mode and was double printing something already handled in CompileGroup
Merge codegen diagnostics into Compiler.Diagnostics so errors/warnings show in editor error list or console in non-tools
If codegen reports any diagnostics of error severity, fail the build ( warnings won't fail the build )
Clean up some generator diagnostic descriptors, make them more clear, set severity to warning on warnings.. Non-static ConCmd.Client errors
Menu is allowed to access engine convars - unfucks all the settings menus
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
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 tags not going to the datatable on client only entities, stopping collisions and traces working properly
vr: controller poses scale properly with VR.Scale now, so your hands are where you expect them
more crash fix for when m_pInterpolatedBoneTransformWeights is nullptr, missed checking the src
vr: don't transform hand's angular velocity to anchored pose, it's not something you want or expect to be affected by it
Unfuck VR culling frustum which was causing scene objects to get rejected thinking they were only visible on 0.1% of the screen
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
Update sentry-native 0.5.2, add Crashpad WER handler which bypasses SEH to handle __fastfail and stack buffer overrun crashes
release shaders for projected decals - should fully behave in VR now
projected decals: small compile fix for shader
Fix r_stereo_multiview_instancing affecting non stereo rendering
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 )
Release shader for projected decals
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
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
System.Net.WebSockets for tool addons
Load System.Security.Cryptography.Algorithms.dll, System.Security.Cryptography.Primitives.dll - and whitelist System.Security.Cryptography
hammer: fix entities not loading from remote packages, this was accidentally reliant on tools.refresh event & now it makes more sense
Assert when a nullptr is passed to CCompositeParentSpaceState::CopyBoneTransformWeights - we need to figure out why it's happening, and if it is valid then we need a dozen nullptr checks on m_pInterpolatedBoneTransformWeights
Crash fix / assert in CCompositeParentSpaceState::operator== where m_pInterpolatedBoneTransformWeights could be nullptr
hammer: fix crash when undoing changes to path nodes
Send fonts over network for local games