Trying to make an "unofficial update" mod... with absolutely no coding knowledge

Started by Kelven, March 07, 2020, 10:33:49 PM

Previous topic - Next topic

Kelven

Since I'm sure all mod authors hate all the "1.1 when?" comments that appear on their mod's Steam workshop page, instead of being "that guy",  I decided to instead try and convert a mod from 1.0 to 1.1 myself. How hard could it be? /s

Anywho, what I've done so far is copy the mod into a new folder, downloaded dnSpy, exported the mod's .dll into a new VS19 project, opened that in VS19, then started following the "Updating RimWorld from 1.0 to 1.1" here: https://gist.github.com/pardeike/08ff826bf40ee60452f02d85e59f32ff

So following that page, I've got the project open in VS19, but obviously that website assumes that the reader has not only coding knowledge, but knowledge of their own project as well. I have neither, since it's not my mod. I got all the 62 Unity dlls added as references (since I don't know which I need, might as well put them all in...?) But now... what? I got VS19's error list for this project up, and it has 45 errors and 2 warnings, but I have no idea where to go now.

I was HOPING I could stumble my way through this with the help of the site linked above, hoping that it'd just be adding support for Harmony by changing a reference somewhere, but I guess it won't be that easy. The mod I'm trying to update isn't a very extensive mod (it just adds a material filter to storages), so I was hoping it would be fairly simple to work out.

So I guess my question is... is my approach to this all wrong? Without taking an extensive online coding course, is this something I could actually do with extremely limited coding knowledge?

Napoleonite

That mostly depends on the mod, what mod? Personally I'd advise you not to do this for a C# mod unless it's a really small mod.

One of my mods uses rather nested LINQ with lazy values and etc. It's near impossible for a non-coder to fix this if that code throws any kind of error.

Hell, even quite some 1.1 mods have odd warnings and errors even after their original creator updated them who have knowledge of both and still partially failed.
Not to mention how many inefficient implementations I found using ILSpy in other people's mods and they ARE coders. Maybe you can fix it but create some serious performance issue that you'll notice way later or cause serious damage to your savegames.

Kelven

Quote from: Napoleonite on March 08, 2020, 07:22:57 PM
That mostly depends on the mod, what mod? Personally I'd advise you not to do this for a C# mod unless it's a really small mod.

One of my mods uses rather nested LINQ with lazy values and etc. It's near impossible for a non-coder to fix this if that code throws any kind of error.

Hell, even quite some 1.1 mods have odd warnings and errors even after their original creator updated them who have knowledge of both and still partially failed.
Not to mention how many inefficient implementations I found using ILSpy in other people's mods and they ARE coders. Maybe you can fix it but create some serious performance issue that you'll notice way later or cause serious damage to your savegames.

The mod is Material Filter, Workshop link: https://steamcommunity.com/sharedfiles/filedetails/?id=1541305730&searchtext=material+filter

I've mostly given up at this point lol. I haven't taken a coding course since high school, and that was in the late 90's, so while I understand the basics of what stuff SHOULD be doing, there's no way in hell I'll be able to fix this myself.