1,109 Commits over 1,219 Days - 0.04cph!
AssetList: don't encode a `file:///` URI in DragData.Text keeping it consistent with all native tools, fixes Hammer not accepting models dragged from our asset browser
Replace asset picking with our own in more native situations
* Improved the native API for opening our AssetPicker so it's easier to swap out the old embedded asset browsers
* QAssetSelectionWidget ( property sheets ) and QEmbeddedAssetPicker ( Active material ) use our AssetPicker
* Limit the ability for the AssetPicker to select cloud assets, when called from native we only allowed it when the context asset is a vmap
Drop targets don't need to be public
MapNode creation/deletion has to be done on main thread, add asserts
Null safety checks on map node shit
Update to .NET 6.0.10
nullptr checks for Hammer.ActiveMap
MapEntity / MapMesh constructors will default to active map doc if not specified
MapView wraps CMapView so we can use it in addon space
Add `[CanDrop( string AssetFileExtension )]` that support `IMapViewDropTarget.DragEnter( Asset ... )`, make it all accessible to addon space
Move MaterialDropTarget to addon space
Hammer: Add SoundDropTarget - creates snd_event_point for .sound assets
Make Asset.TryLoadGameResource<T> work on compiled assets w/o source files by implementing in EngineGlue::LoadJsonAsset for compiled files
Hook up the CMapView's CToolCamera so we can have the camera pos/angles and able to build rays from 2d coords
Hammer traces return their hit MapNode by managed handle so can do `if ( tr.MapNode is MapMesh mesh )` now
Add MapMesh.SetMaterial( Material )
Real simple drag handler for material packages - this code is all getting shit though time to rip it up
Refactored map view drop targets into an interface with attributes: `[CanDrop( Package.Type.Model )] class ModelDropTarget : IMapViewDropTarget`
Once I wrap CMapView I'll make this public and make it work with standard AssetType too, so you'd be able to create custom drop targets for your game resources.
Split Hammer save/load logic into different file and document all the internals so anyone other than me can know what the fuck is going on
Make _metal and _trans suffixes actually work in create material from image
Asset Browser: use User order for cloud assets so you see your shit first
Asset Browser: can search for cloud materials
Hammer Asset Browser: double clicking a cloud material will install and set the current material to it
Allow non power of two textures in materials, strip some gameinfo image preprocessors code we'll never use too
Can publish materials to asset.party same way as models
Just code cleanup to make diffs easier, NULL -> nullptr that sort of shit
Backport improved DX11 buffers; these changes mainly focus on structured buffer alignment
Remove DX9 only concepts from binding buffers
Kill IRenderContext::SetUserClipPlane (Not supported since DX9)
vfx_dx: remove dead dx9 code
Smarter binding of UAV slots to not conflict with RTVs
Fix MAT_OP_STORE_RS_MULTI_SAMPLE_ENABLE never working
Backport GPU Buffer methods ( we should be using these for tiled / transform buffers ideally )
DX11: IBs get their SRVs bound differently to VBs
Merge fixes from Valve for DX11 renderer - nothing massively major here, some asserts, wrong enum fixes, CopyTexture can use DX11 CopySubresourceRegion instead of shaders
DX11: ensure there is always a viewport set for a draw - fixes warning "There are no viewports currently bound. If any rasterization to RenderTarget(s) and/or DepthStencil is performed, results will be undefined."
Delete all source files for DX9 & OpenGL renderers
Hammer: Set current material from new asset browser on highlight
Defer CKeepAssetCached::ReleaseAsset() until after we're done with the asset in CMapViewDropTarget::OnDrop( ... ) - fixes materials being dragged into the map not applying when they weren't being set to the current material
CResourceAsset::CanRecompile - don't care about leafiness
Kill lpv_skycoverage and lpv_sdf from vrad3 too
Get rid of unused Bake SDF compile option that made map compiles always take forever and hide deterministic charting comptations option behind dev flag since that's what its for
Cloud assets use PATH_ADD_TO_TAIL so they don't get prioritized over anything you have locally
Hammer cloud models (#469)
Remove CAsset::IsVisibleForMod - this was causing addons assets to be invisible to other addons assets depending on the order addons were added..
This should fix cases where uploading a map wouldn't upload dependant assets from content pack addons seemingly randomly.
As well as let any addon assets see assets in our cloud path so they can resolve references properly.
Revert "Recompiled Assets" - these were recompiled on an old version
This reverts commit 3859bffe7bb821a43bb261084a1aa6ce35d1b0ef.
Up VTEX_LOGICIAL_CRC_VERSION - This is going to rename all generated.vtex_c and recompile vmat_c, I know this sucks but we have to do it because we've had a determinism bug in the texture compiler for a long time and that's causing our texture manager to shit itself when it expects everything to be deterministic.
Recompile all vmat_c
Remove these generated.vtex_c - how did they even get past the .gitignore
update stubble.vmat_c from merge
Strip a tiny bit of shit
Only hide non floating dock widgets in Hammer when toggling fullscreen layout ( resolves Facepunch/sbox-issues#2301 )
Disable spinning the UI on demand recompiles for now because it's causing re-entrant calls to ForceSynchronizationAndBlockUntilManifestLoaded()
Fix a resourcesystem error by avoiding an unnecessary resource fetch in LightDescFromEntity within CLightHelper::Render, CLightHelper manages its own lightcookie handles
Hammer: Fix Qt already has layout console spew with CQStylizedGroupBoxControllable
Hammer: Make sure the toolbar extensions have a background color so they're usable
Proper fallback handling for no audio devices, fixes game startup crash w/o audio device, but also removal and new audio devices mid game - Resolves #378
Use latest version of bc7e.ispc with determinism fixes and improvements to solid color block encoding (richgel999/bc7enc_rdo)
Fix usercmd delta compression for controller analogs where it would never send zero - fixes Facepunch/sbox-issues#2279
More resilient gpu driver version fetching, find a matching adapter description from EnumDisplayDevices that matches the DirectX adapter description
[ClientRpc] codegen supports reserved keyword names w/ @ prefix - fixes Facepunch/sbox-issues#2227
Collect & replicate usings for codegen so we can keep stuff like initializer syntax simple whilst making it work as you would expect with namespaces - fixes Facepunch/sbox-issues#2018
Remove ErrorList singleton - not needed and some shit code was stomping it and making nothing work
Add all local addons to the error list combobox (move those with errors to the top), makes it easier to filter for just the addon you give a shit about - resolves Facepunch/sbox-issues#2188
Only show errors from active addons, update combo / list on localaddons.changed - resolves Facepunch/sbox-issues#2146
Codegen add distinct namespaces only, stop some warnings
Add controller look yaw/pitch speed settings, this is deg/s ( fixes Facepunch/sbox-issues#1496 ) Multiply InputBuilder.AnalogLook by Time.Delta so it's not framerate dependent ( fixes Facepunch/sbox-issues#2045 )
Make convars work on non-public props
Use InputButton.Chat for chatbox, enter defaults to +iv_chat, obsolete Sandbox.Hooks.Chat.OnOpenChat
Reset analog inputs to default when UsingController is 0 in the usercmd - fixes Facepunch/sbox-issues#2238
AddonCreator: normalize paths, don't allow creation in a folder full of other folders either you're very likely fucking up then
Open in code editor button for tools addons - resolves Facepunch/sbox-issues#2226
Make the "from asset.party" addon downloader auto-select the path a bit better - fixes Facepunch/sbox-issues#2233
Delete dota healthbar SFM code that plagued the IToolService and ISource2Engine
Dock Error List in default layout
Only enable vr_depth_submit on Oculus as their positional timewarp is the only thing that makes use of it. WMR OpenVR driver would instantly crash on depth submits, so this resolves that too.
Revert "Make Entity.IsAuthority a virtual property"
This reverts commit 1533014f19347562cbac07a148ee3926da2f64ad.
Make Entity.IsAuthority a virtual property
BaseItemWidget: Ctrl clicking selected items removes them from the selection
Fix AssetBrowser not loading saved settings correctly - Fixes Facepunch/sbox-issues#2063
Fix Hammer texture replace window's asset picker shrinking and becoming unusable
Asset Browser: can make new folder from AssetList
Enable MultiSelect on AssetList
Don't try to open a context menu if we have no options, otherwise Qt will moan
Implement shift click multiselect in BaseItemWidget
https://files.facepunch.com/matt/1b0211b1/sbox_2u4H5Gcpcl.mp4
Entity.networkTags should use StringComparer.OrdinalIgnoreCase when updated from network
Fix FileSystem.RebuildContentPath() skipping over addons because it was using File.Exists instead of Directory.Exists. Fixes Facepunch/sbox-issues#2085 and probably quite a bit of other stuff
steamaudio_enabled -> steamaudio_enable, drop FC_ARCHIVE since I suspect loads of people had it saved to 1 :(
Temporarily disable Steam Audio by default to resolve crashes as the heap corruption has persisted even without IPL_SCENETYPE_EMBREE
Tag steamaudio_enabled so we can see it in Sentry, so we can be 100% sure
Add steamaudio_enabled cvar