Mod maker feature updates:
- Added Mono.Cecil. Mono.Cecil is a library that allows for the dynamic reading and creation of compiled .NET code. This library will be included in all future releases.
- Added several Mono.Cecil API extensions. See Cecil/CecilExtensions.cs.
- Added LINQ extensions for zipping two collections (normally a .NET 4 feature), and comparing the contents of two collections. See Extensions/LinqExtensions.cs.
- Added a
Tuple<T1, T2>
data structure. - Added platform-aware utility method to determine if two path strings point to the same file.
- Added utility function to determine what
ModBase
class directly or indirectly called said function. This is in certain cases in Harmony patches.
Internal changes:
- Updated modloader to use Mono.Cecil for assembly inspection. This prevents assemblies from being loaded into the CLR that don't need to be, which can cause issues with second stage modloaders.
- Reconfigured the assembly resolver to look at DLLs next to the Framework as well as the Mods folder when attempting to find an assembly.
Bug fixes:
- Added licenses for libraries that are redistributed with each release (Harmony, Mono.Cecil, SharpZipLib).
- Fixed a bug in the base game where the wrong directory separator character would be appended to
Planetbase.Util::getFilesFolder()
.