Temperz87 / ultra-mod-manager

A WIP mod manager for ULTRAKILL, that works with BepInEx and UKMods
MIT License
24 stars 21 forks source link

Changed mod dependency system, works similar to BepInEx's system #13

Closed PetersonE1 closed 1 year ago

PetersonE1 commented 1 year ago

Changed the mod dependency system to work using attributes, calling LoadMod() recursively on dependencies. LoadMod now checks if a mod is already loaded, and returns if it is. Skips loading a mod if the required dependency is missing or below the minimum version, logging an error stating either the GUID of the missing mod or the current and minimum versions. UKPlugin now has a GUID field, and the modVersion field has been changed to a Version type instead of string. While this does break every mod until they are updated to include a GUID, this provides each mod a more code-friendly identifier, such as is used in the dependency system.

Adjusted onto the Dev branch instead of master.

Temperz87 commented 1 year ago

Three things

  1. Do not include your csproj.user in the build under any circumstances.
  2. In ModInformation.cs, why was 64 and 65 swapped? I believe that if a mod tosses an exception while loading, it shouldn't be classified as loaded.
  3. In UltraModManager.cs, why is foundsMods and allLoadedMods now a dictionary and not a list?
Temperz87 commented 1 year ago

Also if you don't want to resolve the conflicts I'm willing to do them for you this time.