1,708 Commits over 1,219 Days - 0.06cph!
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)
Simplify this since Package.Fetch can handle a asset.party url
Fix game_packages being stomped by migration propery this time
Progress update when downloading game package in Hammer
AssetSystem.InstallAsync can do games, but ignore downloading assemblies
Don't stomp game_packages each load
Refactor game packages to use metadata, and use AssetSystem.InstallAsync to make sure we have any game assets avaliable which will resolve Facepunch/sbox-issues#1748
Fix NRE when loading a map with metadata but no cloud_packages
Don't react to assetsystem.changes in the remote asset browser, fixes flickering whilst assets are being installed as well as it refreshing on map save
Add search to remote asset browser
Refactor managed mapview drop target, add path for varying behaviour for different asset types, cleanup & comment
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }`
Move ManifestMount to Sandbox.Engine
Static ToolRender class uses the current CToolRenderContext context
Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously
Create a remote asset manifest within a map doc, save/load remote assets used within the map
Simplify mapdoc remote asset manifest, no need for all these C++ bindings
ResourceCompilerMap: parse the remote asset manifest and symlink mount any transient assets just before `CResourceCompilerMap::CollectMapDependencies`
ResourceCompilerMap: Put the transient asset manifest in the .vpk - this will serve two purposes: publishing should mount before collecitng dependencies of the map, when loading the map locally we need to fetch/mount these transient assets
Mount transient assets in resourcecompiler even earlier with a vmap.meta file, any later and the references get fucked up
Clean up all this dmx crap and use Asset.MetaData on the vmap for our transient asset manifest
Small cleanup in compilemap, it's okay not to have a .meta file, remove some debug logs
Get the debug download text working again, use static dirtying this time so its safer / easier
Fix null ref on new maps
Use AssetSystem.InstallAsync when dropping a package on the map, delete all the old bullshit ManifestMount around here
No need for CResourceCompilerMap::MountMapTransientAssets now, asset system mounts cloud automatically
Save distinct Asset.Package idents of referenced assets on map save into the Asset.Meta, and make sure they are installed on map load
Revert "Move ManifestMount to Sandbox.Engine"
This reverts commit c1cbe1e2c3ce181ddde6f9633fe1861c04576bbf.
Set the bounding box based on package metadata so you know how big the model is while it's still downloading - I think this metadata probably belongs in the Qt drop data
Remove bad using
When we're dragging on the map view with Qt, start a QTimer to run tool frames manually. This makes dragging packaged assets able to async properly since we can run our main thread synccontext and dirtied map nodes will actually re-render.
Early out if the cloud assets already has the package, don't bother with any unnecessary remote fetching. Refactor and comment.
Add Install to context menu of a packaged asset, have already found myself wanting this
Icon indicators for installed cloud packages
Remove the danger from this async code by using a reference to the CMapNode ID instead, can refactor this further but it's much less shit now
Fix model getting stomped whilst dragging it around, for some reason the native free drag code restores from a baseline copy every drag event
Fix model getting stomped whilst dragging it around, for some reason the native free drag code restores from a baseline copy every drag event
Remove the danger from this async code by using a reference to the CMapNode ID instead, can refactor this further but it's much less shit now
Early out if the cloud assets already has the package, don't bother with any unnecessary remote fetching. Refactor and comment.
Add Install to context menu of a packaged asset, have already found myself wanting this
Icon indicators for installed cloud packages
Remove bad using
When we're dragging on the map view with Qt, start a QTimer to run tool frames manually. This makes dragging packaged assets able to async properly since we can run our main thread synccontext and dirtied map nodes will actually re-render.
Revert "Move ManifestMount to Sandbox.Engine"
This reverts commit c1cbe1e2c3ce181ddde6f9633fe1861c04576bbf.
Set the bounding box based on package metadata so you know how big the model is while it's still downloading - I think this metadata probably belongs in the Qt drop data
Use AssetSystem.InstallAsync when dropping a package on the map, delete all the old bullshit ManifestMount around here
No need for CResourceCompilerMap::MountMapTransientAssets now, asset system mounts cloud automatically
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.
Save distinct Asset.Package idents of referenced assets on map save into the Asset.Meta, and make sure they are installed on map load
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.
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }`
Move ManifestMount to Sandbox.Engine
Static ToolRender class uses the current CToolRenderContext context
Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously
Create a remote asset manifest within a map doc, save/load remote assets used within the map
Simplify mapdoc remote asset manifest, no need for all these C++ bindings
ResourceCompilerMap: parse the remote asset manifest and symlink mount any transient assets just before `CResourceCompilerMap::CollectMapDependencies`
ResourceCompilerMap: Put the transient asset manifest in the .vpk - this will serve two purposes: publishing should mount before collecitng dependencies of the map, when loading the map locally we need to fetch/mount these transient assets
Mount transient assets in resourcecompiler even earlier with a vmap.meta file, any later and the references get fucked up
Clean up all this dmx crap and use Asset.MetaData on the vmap for our transient asset manifest
Small cleanup in compilemap, it's okay not to have a .meta file, remove some debug logs
Get the debug download text working again, use static dirtying this time so its safer / easier
Fix null ref on new maps
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)
Hammer: Fix Qt already has layout console spew with CQStylizedGroupBoxControllable
Fix null ref on new maps
Get the debug download text working again, use static dirtying this time so its safer / easier
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }`
Move ManifestMount to Sandbox.Engine
Static ToolRender class uses the current CToolRenderContext context
Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously
Create a remote asset manifest within a map doc, save/load remote assets used within the map
Simplify mapdoc remote asset manifest, no need for all these C++ bindings
ResourceCompilerMap: parse the remote asset manifest and symlink mount any transient assets just before `CResourceCompilerMap::CollectMapDependencies`
ResourceCompilerMap: Put the transient asset manifest in the .vpk - this will serve two purposes: publishing should mount before collecitng dependencies of the map, when loading the map locally we need to fetch/mount these transient assets
Mount transient assets in resourcecompiler even earlier with a vmap.meta file, any later and the references get fucked up
Clean up all this dmx crap and use Asset.MetaData on the vmap for our transient asset manifest
Fuck around a bit with mounting transient assets before collecting assets for publishing, doesn't work properly unless the assets are registered with the asset system and that doesn't like symlinks.. yet
Small cleanup in compilemap, it's okay not to have a .meta file, remove some debug logs
Mount transient assets in resourcecompiler even earlier with a vmap.meta file, any later and the references get fucked up
Clean up all this dmx crap and use Asset.MetaData on the vmap for our transient asset manifest
Fuck around a bit with mounting transient assets before collecting assets for publishing, doesn't work properly unless the assets are registered with the asset system and that doesn't like symlinks.. yet
Simplify mapdoc remote asset manifest, no need for all these C++ bindings
ResourceCompilerMap: parse the remote asset manifest and symlink mount any transient assets just before `CResourceCompilerMap::CollectMapDependencies`
ResourceCompilerMap: Put the transient asset manifest in the .vpk - this will serve two purposes: publishing should mount before collecitng dependencies of the map, when loading the map locally we need to fetch/mount these transient assets
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }`
Move ManifestMount to Sandbox.Engine
Static ToolRender class uses the current CToolRenderContext context
Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously
Create a remote asset manifest within a map doc, save/load remote assets used within the map
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
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }`
Move ManifestMount to Sandbox.Engine
Static ToolRender class uses the current CToolRenderContext context
Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously
Create a remote asset manifest within a map doc, save/load remote assets used within the map
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.
Get free dragging working from C# using the native stuff for it that does loads of shit. Tidy up lots of redundant parameters since we pass the CMapView now
Make static ToolRender class that uses the current CToolRenderContext - only called from Hammer MapView atm
Hook up some quick and dirty progress indicators for cloud models in hammer. Fair bit of shit code, but I want to get the flow good first
https://files.facepunch.com/matt/1b1711b1/sbox_baEO6vIdim.mp4
Update README and LICENSE - anyone can learn / take code for their own s&box games
Process queue for SyncContext.MainThread in ManagedTools.RunFrame() - the frame is ran manually when QtDrag blocks, so lets make sure we can still do async tasks on the main thread
Now we can load cloud models whilst we're dragging them around