1,526 Commits over 1,188 Days - 0.05cph!
Remove this ancient source behaviour we've been keeping around that amplifies the Input.AnalogLook pitch by 1.5
Make Input serverside asserts a bit more clear
Input.AnalogLook and Input.AnalogMove are accessible serverside like everthing else in Input
Use CircularBuffer for InputHistory
Hammer remote packages use new .bin path, remove all the legacy support
Parallelize MapClass parsing
Only default VR.Anchor to Local.Pawn.Transform unless it's been explicitly set from a game - that way games can set VR.Anchor whenever and whereever they want
Make PerformanceStats.Timings.History use a circular buffer, this was starting to take a small amount of time as we collected more and more perf stats
Camera.FieldOfView is actually horizontal and not vertical 😳
Add a couple of events to [ToolEvent.MapEditor] for discoverability
SceneCamera.IsOrtho is SceneCamera.Ortho
Clarify Camera.FieldOfView is vertical and Screen.CreateVerticalFieldOfView converts horizontal -> vertical
Only suppress texture deletion and not texture loading during managed render layers, fixes hangs
Backport latest texture manager changes from Valve, fixes for race conditions in async hookup jobs
Suppress texture frame updates for render hooks, fixes bound textures with no references getting deleted before the frame fully ended
Revert ScreenEffects workaround from not being able to Material.Load within RenderHook
Fix leaky strong handle from RenderTools.RenderScene on unused returned ITexture
Backport latest texture manager changes from Valve, fixes for race conditions in async hookup jobs
Suppress texture frame updates for render hooks, fixes bound textures with no references getting deleted before the frame fully ended
Revert ScreenEffects workaround from not being able to Material.Load within RenderHook
Fix leaky strong handle from RenderTools.RenderScene on unused returned ITexture
Fix leaky strong handle from RenderTools.RenderScene on unused returned ITexture
Backport latest texture manager changes from Valve, fixes for race conditions in async hookup jobs
Suppress texture frame updates for render hooks, fixes bound textures with no references getting deleted before the frame fully ended
Revert ScreenEffects workaround from not being able to Material.Load within RenderHook
CTextureManagerBase::AllocateResource race condition fix - set the ResourceHandle->Data mapping as soon as SetFinalResourceData is called
> When loading / reloading textures, the handle can be null instead of the new texture when the async work starts, causing the load to make crazy things happen
CUtlIdGenerator
Actual headers for texture residency info
Backport latest texture manager changes from Valve, hopefully managed to not stomp our own additions & fixes
disalbe these asserts for now
CTextureManagerBase::AllocateResource race condition fix - set the ResourceHandle->Data mapping as soon as SetFinalResourceData is called
> When loading / reloading textures, the handle can be null instead of the new texture when the async work starts, causing the load to make crazy things happen
Try suppressing resource manager frame boundary work during an IProceduralLayerRenderer - this seems to fix resource loads within render hooks in game mode... but not tools mode
Backport latest texture manager changes from Valve, hopefully managed to not stomp our own additions & fixes
Cleanup and strip native postprocess pipeline and shader, fix dx11 validation error, remove unused combos, features & attribute - remove unused convars: r_post_fxaa, r_post_vignette, r_post_film_grain, r_post_mirror_horizontal, r_post_mirror_vertical
Maps can use entities from addons tagged "map entity", these addons are mounted for the map independent of game and are accessible from Hammer entity tool
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
Mount addons from map package meta MapAddons
When publishing a map, set meta MapAddons from the map's metadata ( messy, improvements to be made since it's a single asset workflow really )
Use vmap asset not vpk asset
Don't save #local in ident to vmap meta
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
Mount addons from map package meta MapAddons
When publishing a map, set meta MapAddons from the map's metadata ( messy, improvements to be made since it's a single asset workflow really )
CShapeManager: all of this should be const auto&
Can we stop pushing `#pragma optimize("",off)` to master
aoproxies: fix crash when a non-anim sceneobject has bones and aoproxies, the game used to override sceneobjects to be anim so this code made assumptions
aoproxies: optimize loop over aoProxies by ref instead of copying
Give Hammer asset browser object name and icon again
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
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
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