Closed Buckminsterfullerene02 closed 9 months ago
Okay so I've kind of added a lot of extra new stuff. I wanted to support unreal shimloader/Thunderstore/r2modman mod manager, and you already had a TODO in there to cater to more than just Curseforge. But some of the configs are dependant on each other, and I didn't want to confuse the user, so I made custom properties so that changing properties (such as mod manager checkboxes) hides/shows other relevant settings.
Thunderstore requires some extra files such as manifest.json, a readme, and an icon.png. I figured I can populate the manifest.json from the ModActor blueprint variables. And then I realised those should be populated automatically by inputting those values in when you go to create the mod in the firstplace. Then the rest of the details are set when you "prepare mod for release", which is basically the step in-between build and zip. The prepare for mod release button only shows up if you have Thunderstore enabled.
I also added a button for uninstalling mods (from game's logic mods) since otherwise mods basically just end up piling up in there and we don't want the user manually opening the file to remove them!
Various typos etc.
I think I'm pretty happy with how things have turned out. Let me know what you think, happy to change whatever (as well as normal code review)! @ToniMacaroni
Awesome PR! I appreciate it a lot. I remember I wanted to refactor something in the mod builder before exposing the functions to blueprints, but I can't remember what exactly, so for now it can stay like it is. One big TODO is to make the whole mod building process async or implement it as part of a worker (if you ever feel bored wink wink). The support for multiple mod sites was also a much needed improvement, so thanks a lot for that.
Awesome PR! I appreciate it a lot. I remember I wanted to refactor something in the mod builder before exposing the functions to blueprints, but I can't remember what exactly, so for now it can stay like it is. One big TODO is to make the whole mod building process async or implement it as part of a worker (if you ever feel bored wink wink). The support for multiple mod sites was also a much needed improvement, so thanks a lot for that.
To be honest I don't have any idea about asynchronous in C++ so I'll probably just leave that to you (I'm sorry). Also I think mod builder is a bit of a mess now, so perhaps it all needs a bit of a refactor anyway. Currently it's not very obvious to see how exactly you'd go about adding asset replacement mod support. If I had more time I'd probably do it.
Also, small issue that becomes a bigger issue as use goes on: due to the way the "build mod" dropdown button works, there's basically 4 more lines added for every mod (or 3 if Thunderstore isn't selected), which becomes very long once you've got 5 or more mods in there. Probably after like 15 mods the list would go off the bottom of the screen! So a bit of a UI rethink required there. Should be pretty simple though (maybe the dropdown is for each action with a sub-dropdown where you select the mod for that action, or vice versa).
Great tool. This is the type of A-tier built-in tools that any modkit deserves to have. Draft PR because I want to add a couple more improvements if I have time to.
Don't use ANY_PACKAGE that will be deprecated after 5.1 (I will probably be porting this to other versions with ifdefs and such)
Make UModBuilder blueprintable
When cooking, mod was being skipped due to incorrect configs.