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

ModSource Design #223

Open
joshuaskelly opened this issue Mar 19, 2021 · 4 comments
Open

ModSource Design #223

joshuaskelly opened this issue Mar 19, 2021 · 4 comments
Labels
proposal A proposed feature that needs further consideration
Milestone

Comments

@joshuaskelly
Copy link
Collaborator

joshuaskelly commented Mar 19, 2021

Summary

Determine the initial design for the ModSource interface.

interface ModSource {
    // Get paths to all local mods.
    Array<String> getInstalledMods();

    // Get paths to all enabled mods.
    Array<String> getEnabledMods();

    // Get info for all available mods. These may not be locally installed.
    Array<ModData> getAvailableMods();

    // Get the UI to display for this source.
    WindowOverlay getUI();
}

Goals

  • View all mods a source knows about.
  • Enable/disable any given mod.
  • Display UI for any custom needs a source may have.

Prior Art

There is some work existing around the Delver steam integration. See:

public WorkshopModData getDataForMod(String modPath) {

@joshuaskelly joshuaskelly mentioned this issue Mar 19, 2021
1 task
@joshuaskelly joshuaskelly added the proposal A proposed feature that needs further consideration label Mar 19, 2021
@joshuaskelly
Copy link
Collaborator Author

For a V0 UI is probably not needed.

@PythooonUser
Copy link
Contributor

What could also be interesting is a refresh method that would allow to reindex the existing content, either locally or remote (and probably being called on start).

@PythooonUser
Copy link
Contributor

Also, is there a specific reason to go with String instead directly with a FileHandle?

In order to keep the same behavior like the ModManager, maybe?

@joshuaskelly
Copy link
Collaborator Author

I don't think Refresh would be a common function.

Strings for simple serialization.

@joshuaskelly joshuaskelly added this to the v1.5.0 milestone May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal A proposed feature that needs further consideration
Projects
None yet
Development

No branches or pull requests

2 participants