This is a pure tech PR containing prerequisites for upcoming chores sync pipeline.
New features:
Control flow customizer - allows to skip methods invocations within a bounded context.
Harmony generics router - allows to invoke a patched method of a generic class with the correct generic types, it covers the case when the method's body contains interactions with generic types, like typeof(T).
State machines patcher - dynamically patches state machines InitializeStates based on the provided configurers and allows to apply pre and post initialization changes (like prefix and postfix in Harmony terms).
State machines configuration DSL - a "DSL" (as much as it's possible in C#) for directly accessing state machines instances in the initialization process.
HarmonyManual attribute for patches that supposed to be applied manually, outside of DelayedModLoader, like LaunchInitializerPatch and HarmonyGenericsRouter.
it also includes a TCP logger, added only for internal state machines debugging (maybe I'll add the server and the UI later)
This is a pure tech PR containing prerequisites for upcoming chores sync pipeline. New features:
typeof(T)
.InitializeStates
based on the provided configurers and allows to apply pre and post initialization changes (like prefix and postfix in Harmony terms).HarmonyManual
attribute for patches that supposed to be applied manually, outside ofDelayedModLoader
, likeLaunchInitializerPatch
andHarmonyGenericsRouter
.