Nexus-Mods / NexusMods.App

Home of the development of the Nexus Mods App
https://nexus-mods.github.io/NexusMods.App/
GNU General Public License v3.0
855 stars 43 forks source link

[FOMOD] Add proper implementation for all xml Fomod features #281

Open Sewer56 opened 1 year ago

Sewer56 commented 1 year ago

Currently

We have only basic support for the FOMOD format.

This means we lack support for plugin dependencies which in turn means users might not be able to correctly install mods that rely on other mods or plugins to function properly. This is because the FOMOD installer has no context with regards to what will be available on Disk.

Implementation

Al12rs commented 1 year ago

Fomod format allows for some extra operations, like checking if a file or plugin exists and is enabled and such.

For examples of implementation see Vortex or MO2. Couldn't find the right place for Vortex, but here is MO2's: https://github.com/ModOrganizer2/modorganizer-installer_fomod/blob/master/src/installerfomod.cpp

erri120 commented 1 year ago

See https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.FOMOD/CoreDelegates/PluginDelegates.cs for details. It should also be noted that we don't have to implement all ICoreDelegates, as some of those are for C# FOMOD and not XML FOMOD.

BellCubeDev commented 9 months ago

Though it probably won't be useful, I'll link Vortex's implementation of those extra operations for completeness. https://github.com/Nexus-Mods/Vortex/blob/master/src/extensions/installer_fomod/delegates/Plugins.ts