Inferno214221 / cmc-mod-manager

Fully Functional & Somewhat Popular | A mod manager for the CMC+ v8 (Crusade Modding Community Plus Version 8) build of SSBC (Super Smash Brothers Crusade). [Electron, TypeScript & React]
GNU General Public License v3.0
17 stars 1 forks source link

Detect Multiple Mods Per Dir / Archive #6

Open Inferno214221 opened 3 months ago

Inferno214221 commented 3 months ago

This should provide an alternative solution to the "porting" pages which were available in the versions 2.x (by allowing the selection of another game directory as the installation source). If more than one mod is detected (files wise - can't use the existing get functions), a dialog is opened listing the characters, alongside an install button for each. Also indicates if they are already installed by instead allowing updates. When multiple mods are detected, all existing preferences about filtering and updating mods are discarded. All mods installed this way will be filtered and updates will be optional per mod.

Inferno214221 commented 2 months ago

This functionality is now fully implemented for Characters, I just need to replicate it for Stages.

Inferno214221 commented 2 months ago

Given #16, the character installation window should probably be added to an operation with the 'User' dependency. This would have some implications however:

Inferno214221 commented 2 months ago

Maybe a secondary User dependency could be defined so that these operations block each other (if multiple directories are selected) but still allow for other operations which depend on User.

Inferno214221 commented 2 months ago

Additionally, because this functionality replaces the port features from previous versions of CMC Mod Manager, it should check for a vanilla fighters.txt or standard stage.txt in the parent directory to find missing information about the available mods.

Inferno214221 commented 23 hours ago

Looks like I forgot to mention some stuff here. The last commit implements OpDeps.USER_SLOW which is the dependency discussed above to allow other USER dependent operations to continue. Also it should be noted that: checking stage.txt is even more essential because very few mods are likely to have stage info (only those exported with mod manager previously), so their bin name is the only information found.