This project started small, and then exploded. What initially seemed like a quick and easy plugin turned out to be technically very challenging and complex to implement. The first part of that sentence is why I accepted to do this, the second part is why it took an entire week - but it was fun and educational.
The original idea was to enable scene creators to configure a start/landing scene for ensuring their users have all of the dependencies required for the actual scene installed. However in the completed plugin, there are many user focused features as well that may come in handy especially when used as a session plugin.
This will be a paid plugin for only a short while, around 2 weeks. It will be released on Hub with a CC BY license to allow scene creators to use it for free in paid and free projects.
Identify and download the dependencies of any package by scanning its meta.json file
Scan only direct dependencies or also optional sub-dependencies
Packages that are missing and potentially downloadable via the Hub will be pending download, additionally existing packages with "latest" requirement can be checked for updates
Downloading works reliably and with support for viewing overall progress, and for stopping the download
At each step, the info text field updates to show the status of packages - which ones are missing, downloaded, pending download, etc.
Identify which dependencies are disabled (which you can do via Package Manager, for those who didn't know); note that this can cause a delay and eat up a bunch of RAM if you have a lot of packages
Auto-download when pending download, auto-accept plugins from downloaded packages
Acidbubbles.Keybindings support:
AutoGetDependencies.SelectMetaJson
AutoGetDependencies.ScanLoadedSceneMetaJson
AutoGetDependencies.DownloadMissing
AutoGetDependencies.StopDownload
AutoGetDependencies.OpenUI
I'll add information about how to integrate the plugin to scene logic to the Hub post when releasing the free version. It's complicated but powerful, so there will be one or more demo scenes and some flow charts. For now, in a nutshell:
Comprehensive custom triggers for integrating the plugin to scene logic, enabling creators to provide a customized start scene for their releases which ensures dependencies are installed before continuing; see plugin UI for details on the trigger types
For each custom trigger, a UIText can be selected in the scene to send text to (e.g. list of 'not on Hub' dependencies)
Copy custom trigger UIText contents to clipboard via triggerable action
Custom trigger if VAM is not the in latest version
Auto-enable Hub in order for download to proceed, for ensuring a seamless download for any user who happens to have Hub disabled
Select UISlider from scene to display download progress
Credit: MacGruber Utils (CC BY)
Have fun with it!
-everlaster
MaxMuscle
2024-09-13 16:20:25 +0000 UTCeverlaster
2024-09-13 13:00:27 +0000 UTCdaedalusTX
2024-09-13 12:37:21 +0000 UTC