EverestAPI / Everest

Everest - Celeste Mod Loader / Mod API

Home Page:https://everestapi.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Allow extracting arbitrary files to Mods/Cache

swoolcock opened this issue · comments

commented

I am planning on implementing this myself

Yes

Describe your request

I'm currently developing a helper for Everest Core that's a wrapper on DearImGui, and I have everything working apart from automatically loading native libs.

Manually dumping the native libs into Mods/Cache allows Everest to load them just fine, but there's no way for my helper to put them there short of manually extracting them from the mod zip at mod initialisation.

I believe a cleaner way to do this would be to allow mod authors to explicitly list off additional files in the zip that should be extracted to Mods/Cache. I think it makes sense for this to go directly into everest.yaml.

- Name: YourModName
  Version: ...
  DLL: ...
  Resources:
    - imgui.dylib
    - imgui.so
    - ...
  Dependencies:
    - Name: Everest
      Version: 1.0.0
  OptionalDependencies:
    - Name: ...
      Version: ...

Additional context

No response

This seems like a needed feature for when platform specific code is required but i think two things should get done about it:

  • Add some discouragement for this feature on the docs, platform specific code leads to additional effort and issues, it should only get used as a last resource for when the standard c# libraries are not enough.
  • Add some kind of warning for the modder if they're missing support for certain platforms. By default mods are cross-platform from the start, and the modder should do its best efforts to keep that, otherwise they should be fully aware that their mod won't work on certain platforms.