Skip to content
This repository has been archived by the owner on Jan 8, 2024. It is now read-only.

BUTR/Bannerlord.Lib.Harmony

 
 

Repository files navigation

Harmony

About

This is a fork of Lib.Harmony with the following features:

  • We removed MonoMod.Common from Harmony - there's a difference in how Harmony exposes MonoMod.Common on .NET Framework and .NET (Core):
    • In .NET Framework it's integrated (statically linked) within Harmony.
    • In .NET (Core) it's exposed as a separate dependency.
      For consistence sake and compatibility reasons, we need to have a consistent behaviour, removed MonoMod.Common and redirected the integrated types via TypeForwardedTo.
  • We also reduced the targets to net472, netcoreapp3.1 and netstandard2.0 to target only game supported runtimes.
  • We replaced MonoMod.Common with MonoMod.Utils and MonoMod.RuntimeDetours.

This fork is fully backwards compatible with the original Lib.Harmony!

Check the original repo for more info!

Harmony Origin Notes

  • The name of 0Harmony.dll was chosen due to RimWorld's assembly load order. It's alphabetical
  • MonoMod.Common was merged into Harmony via ILMerge because of RimWorld. It load assemblies as byte[], preventing the load of sub-dependencies
  • MonoMod.Common is a fork of MonoMod.Utils and MonoMod.RuntimeDetours

Languages

  • C# 100.0%