MakovWait / godots

🚀Ultimate go-to hub for managing your Godot versions and projects! 🚀
MIT License
323 stars 25 forks source link

Add support for acquiring remote projects from the asset library #14

Closed Festerdam closed 10 months ago

Festerdam commented 1 year ago

Adds support for downloading projects from the asset library.

Created a new tab that shows all project assets available for a specific version. All asset listings can be clicked, which brings up a description for the asset with the option to download it. Downloading it will allow for the user to select the name of the new project and the path to install it to.

Uses TuxFamily to acquire information on what versions currently exist and the official asset library API available at https://godotengine.org/asset-library/api/asset (and documented at https://github.com/godotengine/godot-asset-library/blob/master/API.md#assets-api).

This does not download asset icons or asset previews. I believe we shouldn't download the images without caching them, to avoid making heavy use of the bandwidth (I don't know how heavy the usage is, I just don't want to risk DOSing the asset library). This is something that should be implemented in the future.

Screencast from 2023-09-06 00-47-50.webm

MakovWait commented 1 year ago

Great work, thank you! Anyway, there is something that has to be done before we'll be able to merge it.

The main flow of how assets are getting installed: it has to not block the user for doing his stuff. That is why I think of redoing the feature in the way how Godot handles it already - download zip in background, then install it.

We have the desired implementation in EditorDownload, but it is too coupled to the domain. So, first we should generalize it #16, and then reuse in Asset Library.

Also, one more task has to be implemented first: importing the project from zip. It will be useful in this case (asset library) and in Drag&Drop functionality. #15

After the tasks are merged in the main, we'll be able to continue working on this.

MakovWait commented 1 year ago

Starting from now it should be possible to use both the asset_download.tscn and ../components/projects.tscn::install_zip(.., ..) to download and install projects from Asset Lib.

Festerdam commented 1 year ago

Starting from now it should be possible to use both the asset_download.tscn and ../components/projects.tscn::install_zip(.., ..) to download and install projects from Asset Lib.

Thanks! I will probably take some time, since I'm a bit occupied with some other stuff, but I will be back on it within some days.

MakovWait commented 10 months ago

Closed as implemented in #48