Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mod Browser #222

Open
1 task
joshuaskelly opened this issue Mar 19, 2021 · 5 comments
Open
1 task

Mod Browser #222

joshuaskelly opened this issue Mar 19, 2021 · 5 comments
Labels
epic User story covering several features
Milestone

Comments

@joshuaskelly
Copy link
Collaborator

joshuaskelly commented Mar 19, 2021

Summary

Support in-game browsing and installing of mod content.

Children

@joshuaskelly joshuaskelly added the epic User story covering several features label Mar 19, 2021
@joshuaskelly
Copy link
Collaborator Author

Notes

I'm thinking that the ModManager should have a list of ModSources from which it can find content. The ModSources are responsible for listing available mods and acquiring them. It might be useful for a source to provide it's own UI for the browser.

LocalFileSystemModSource

This is a basic mod source that looks at a specified directory. The functionality would largely be similar to the existing behavior. It lists all mods in the directory and allows you to enable/disable them.

GithubRepoModSource

This mod source references a url that point to a GitHub repo. It will list all available mods in the repo and will download mods to the local filesystem.

@PythooonUser
Copy link
Contributor

And as you mentioned this could be easily configured using a modsources.dat file with the following example content:

[
    {
        "class": "com.fqn.modsources.LocalFileSystem",
        "root": "C:\\Some\\path"
    },
    {
        "class": "com.fqn.modsources.GitHub",
        "uri": "https:\\\\www.github.com\\delver-community-mods"
    }
]

@PythooonUser
Copy link
Contributor

I feel like the decision of enabling/disabling a specific mod should be the responsibility not of the mod source but the mod manager. What do you think?

@joshuaskelly
Copy link
Collaborator Author

That is an interesting thought.

Also we are already serializing the modmanager to disk, so it doesn't need to be a separate.dat file.

@PythooonUser
Copy link
Contributor

The next step would be to copy over the existing functionality into the LocalFileSystemModSource class.

@joshuaskelly joshuaskelly added this to the v1.5.0 milestone Apr 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic User story covering several features
Projects
None yet
Development

No branches or pull requests

2 participants