sedenion / OpenModMan

Open Mod Manager - Open source and generic Mod ("Modifications") manager.
GNU General Public License v3.0
84 stars 5 forks source link

Require Dependancies OR case #75

Open Wrench36 opened 4 months ago

Wrench36 commented 4 months ago

Very happy with your work on this project. I'd like to request a feature, though.

I'd like to be able to define dependencies using an "OR" case, i.e. "This mod requires A or B".

My specific use case is I have two versions of a mod and some people prefer one over the other, but I'd like to require the user has one of them installed.

lmiol commented 1 week ago

it is good idea, but i think will be problematicaly to do with both OR + AND at same time. i think it can be done as a switch. so you can set "OR" or you can set "AND" rules

PraetorAugustus commented 1 week ago

No, the programming logic is pretty straightforward. Require 1 from an array (A, B, C, etc.). Works if you have 1 item or many.

The challenge is the UI. What happens if a user wants multiple dependent files but only 1-2 are Either/Or? How do you do that in the UI? (That's a rhetorical question.) A standard Add File or Add Folder dialogue wouldn't do it.

@sedenion Do you think you could turn the Dependencies list into a 2-dimensional array? Most array rows would be a single column entry, but the logic works with multiple columns as well.

The UI would probably be something like "drag from 1 list to another," with a File Explorer list on the R, dependent files on the L, probably with a right-click option to select 1 or more dependent files from the L column and add them as OR options, e.g.,

A1 B1 C1 C2 C3 D1 E1 E2 etc., where the app requires 1 from each row.

My 2 centimes.

sedenion commented 1 week ago

@sedenion Do you think you could turn the Dependencies list into a 2-dimensional array?

Yes, I could, but this would require substantial code rewrite, adding UI controls and process, modifying definition files syntax and parsing... It is a quite hard work for a feature that is, to me, very secondary.

PraetorAugustus commented 1 week ago

@sedenion Do you think you could turn the Dependencies list into a 2-dimensional array?

Yes, I could, but this would require substantial code rewrite, adding UI controls and process, modifying definition files syntax and parsing... It is a quite hard work for a feature that is, to me, very secondary.

Agreed. Add it to the "nice to have" list if you ever decide to rewrite that part of the code.

My squadmate posted the original request when we started our transition from OvGME to OMM.

I created a workaround with two separate Quick Install packages (a container mod with multiple dependencies). One Quick Install is Day, the other is Night, and we simply tell our members to pick one. It works, and no code changes were required. 😄