UnlimitedHugs / RimworldHugsLib

A lightweight shared library for Rimworld modding.
Other
244 stars 59 forks source link

Update to support RimWorld 1.4 (And a bunch of more stuff) #85

Closed zlepper closed 9 months ago

zlepper commented 1 year ago

I'm going to start by apologizing, so "Sorry". I originally just wanted to update the project to 1.4, but I went a bit crazy and did considerably more than that...

So first and foremost: The project has been ported to RimWorld 1.4. The main change here was the Dialog_Options_Patch class. I absolutely won't deny that I probably missed some features of HugsLib when testing. It's quite an expansive library.

Next and most painful: I have made some tweaks to the project structure. I have ported the project to use my own dotnet SDK for making RimWorld mods: https://github.com/zlepper/Zlepper.RimWorldMods/tree/master/Zlepper.RimWorld.ModSdk. This simplifies setting up and running the project since you can just press "Run" is Visual Studio/Rider and the SDK will generally handle figuring out the rest. (It was also a good test of the SDK that allowed me to find a few issues, so thank you).

I can fully understand and respect if you chose to reject the PR purely based on the changes for that. It has nothing to do with porting to RimWorld 1.4 itself and is not something you asked for.

Lastly, I have enabled nullable reference types for the project and annotated the code enough that all warnings have gone away.

To make the PR easier to review I have marked everything in the "Mods" dir as "generated", since it's now pulled directly from the "Source" project when build. There shouldn't be anything malicious there, since it's just the build output of the files in the Source directory.

If you want want all the other things but the porting itself, I will make another PR that contains only the changes required for HugsLib to work with RimWorld 1.4

UnlimitedHugs commented 1 year ago

Hey, I appreciate your enthusiasm on this. I know the feeling- when the inspiration comes, it can’t be helped :) The 1.4 update is already done, including a rework of the mod settings. Still, I will give your changes a look- perhaps I can pick up something that does not make too many drastic changes to existing code.