Streamline new developer setup
Currently setting up a RimJobWorld development environment isn't exactly simple. There are a number of issues that I've addressed in this commit.
The .csproj
file currently makes hard references to ..\..\RimWorldWin64_Data\Managed\*
for all the RimWorld dlls. However, this path is only correct when the mod is being developed on windows and is placed directly in RimWorld's mods directory. I replaced the hard references with conditional ones that automatically link to the appropriate steam install for the OS, as well as a custom directory ../_RimWorldData/Managed/*
that can be symlinked in case someone wants to use a custom installation. As part of this I removed the unused NAudio
and NVorbis
dependencies, which aren't present on macOS.
As part of my RimWorld dll resolution changes, I've created a CONTRIBUTING.md
file which explains how the resolution works, as well as how to set the project up with a custom project location and with a custom RimWorld install location.
The readme requests that contributors use tabs instead of spaces, so I added an editorconfig file to automatically configure people's IDEs/editors to use tabs for this project.
The /packages
directory is (rightly) ignored by git. This directory is automatically populated with Lib.Harmony
, RimWorld.MultiplayerAPI
, and UnlimitedHugs.Rimworld.HugsLib
. However, ChildrenAndPregnancy
, Psychology
, and SYR.Individuality
can't be automatically downloaded, so they are all missing from the packages
directory. To fix this I manually downloaded these mods and added their dlls into a new modpackages
directory, then adjusted the .csproj
file to point to the new location.
The .gitignore is configured to ignore the Assemblies
directory, which included the assemblies directories in modpackages
. As well as this, the 1.1/Assemblies
directory was being ignored, however, because it was already tracked by git it wasn't removed. I'm not certain why the .gitignore was configured like this. Downloading the repository is advertised as a way to download the mod, but if the repository doesn't contain the assemblies the mod won't run. Because of these issues, I removed both Assemblies
and 1.1/Assemblies
from the .gitignore file.