usermattcancel
branchsbox/hammer-transient-packagescancel

28 Commits over 31 Days - 0.04cph!

1 Year Ago
Simplify this since Package.Fetch can handle a asset.party url
1 Year Ago
Fix game_packages being stomped by migration propery this time Progress update when downloading game package in Hammer
1 Year Ago
AssetSystem.InstallAsync can do games, but ignore downloading assemblies Don't stomp game_packages each load
1 Year Ago
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
1 Year Ago
Fix NRE when loading a map with metadata but no cloud_packages
1 Year Ago
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
1 Year Ago
Add search to remote asset browser
1 Year Ago
Refactor managed mapview drop target, add path for varying behaviour for different asset types, cleanup & comment
1 Year Ago
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
1 Year Ago
Fix model getting stomped whilst dragging it around, for some reason the native free drag code restores from a baseline copy every drag event
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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.
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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
1 Year Ago
Hammer: Fix Qt already has layout console spew with CQStylizedGroupBoxControllable Fix null ref on new maps
1 Year Ago
Get the debug download text working again, use static dirtying this time so its safer / easier
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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
1 Year Ago
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
1 Year Ago
Add remote asset.party location to asset browser, fill it with model query Add drag data to Package in AssetList: e.g package://matt.box Add managed handler for Hammer map view drag drop events ManifestMount from Sandbox.Game -> Sandbox.Engine Bare bones dragging asset.party models into Hammer https://files.facepunch.com/matt/1b0611b1/sbox_5qCyTB85LC.mp4 Tidy up map view drag/drop targets in C#, interop more MapDoc so we can create an empty model and asynchronously set it's asset from the package fetch. There's still some messy code here, I think I need to figure out how to do handles for map nodes before this becomes a sprawling mess. And the async method is getting blocked on the main thread once dragging.. but a background thread is going to crash it. Paginate asset.party assets in browser so we see all of them Make our package drag data in the format "https://asset.party/facepunch/boomerjumppad" we could easily extend this code to let you grab these assets straight from the website then Delete dota healthbar SFM code that plagued the IToolService and ISource2Engine
1 Year Ago
Tidy up map view drag/drop targets in C#, interop more MapDoc so we can create an empty model and asynchronously set it's asset from the package fetch. There's still some messy code here, I think I need to figure out how to do handles for map nodes before this becomes a sprawling mess. And the async method is getting blocked on the main thread once dragging.. but a background thread is going to crash it. Paginate asset.party assets in browser so we see all of them Make our package drag data in the format "https://asset.party/facepunch/boomerjumppad" we could easily extend this code to let you grab these assets straight from the website then
1 Year Ago
Add remote asset.party location to asset browser, fill it with model query Add drag data to Package in AssetList: e.g package://matt.box Add managed handler for Hammer map view drag drop events ManifestMount from Sandbox.Game -> Sandbox.Engine Bare bones dragging asset.party models into Hammer https://files.facepunch.com/matt/1b0611b1/sbox_5qCyTB85LC.mp4