rowlul / modthara

Cross-platform Baldur's Gate 3 mod manager and library
MIT License
9 stars 1 forks source link

Make-up and features of the app #1

Open rowlul opened 5 months ago

rowlul commented 5 months ago

Main features:

GUI make-up:

rowlul commented 3 months ago

Displaying, toggling, and searching through mods (mod order, overrides, inactive mods) have been done so far. Paths are hardcoded, need to work on config service.

rowlul commented 1 month ago

Standalone mods and overrides are now properly categorized and filtered with a toggle, Standalone being the default view. Last toggle state should be honored on startup when config service is finally there.

Initial drag and drop between Mod Order and Library grids is done, albeit buggy. Can't drag multiple mods yet. Need to figure out how to prevent user from reordering Library grid or moving mods back into it. Mods in the order need to have a button to put them back out of order.

DorianXGH commented 1 month ago

For settings, I would recommend first implementing reading a settings file, written in a widely used language (JSON/YAML/TOML/XML ...), in order to have something usable without having to write the UI first. For Data overrides, I don't know if a db is necessary, you could just maintain a per-mod file tree internally (which you'll probably do anyway even with a db), and merge them with the game's files at the last moment with symlinks if possible, removing them should then be a case of checking if the Data file corresponds to a file of the mods' file trees. Anyway, seeing as the linux bg3 mod manager scene is quite lacking, I'm quite down to help you if needed :)

rowlul commented 1 month ago

I would probably use System.Text.Json for settings since it's built-in and simple. Haven't given much thought to Data overrides for now, but I recently had an idea to implement a PackageWriter and just merge the overrides. That would also ensure the support for Mac users since they can't use loose files. We'll have to see how the "overrides" change with the official modding tools coming up also. It is as lacking as my XAML/Avalonia skills, heh. Really need some help with DataGrid drag&drop behaviors. Thank you for tuning in!

DorianXGH commented 1 month ago

I implemented a trivial settings system (reads a json), the open library button (and it should be crossplatform and use the default file explorer), and an "update modsettings.lsx" button, for my own use (I think this is the only decent mod manager that works on linux). If you're open to pull requests, I'll change some things and post those !