A stable modding interface between Techblox and mods https://mod.exmods.org/
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

56 Zeilen
1.3KB

  1. using System.Reflection;
  2. using HarmonyLib;
  3. using RobocraftX;
  4. using RobocraftX.CR.MainGame;
  5. using RobocraftX.FrontEnd;
  6. using RobocraftX.StateSync;
  7. using Svelto.ECS;
  8. using TechbloxModdingAPI.Utility;
  9. namespace TechbloxModdingAPI.Engines
  10. {
  11. [HarmonyPatch]
  12. class GameLoadedEnginePatch
  13. {
  14. public static void Postfix(StateSyncRegistrationHelper stateSyncReg)
  15. {
  16. // register all game engines, including deterministic
  17. GameEngineManager.RegisterEngines(stateSyncReg);
  18. }
  19. public static MethodBase TargetMethod()
  20. {
  21. return AccessTools.Method(typeof(MainGameCompositionRoot), "DeterministicCompose").MakeGenericMethod(typeof(object));
  22. }
  23. }
  24. [HarmonyPatch]
  25. class MenuLoadedEnginePatch
  26. {
  27. public static void Postfix(EnginesRoot enginesRoot)
  28. {
  29. // register menu engines
  30. MenuEngineManager.RegisterEngines(enginesRoot);
  31. }
  32. public static MethodBase TargetMethod()
  33. {
  34. return AccessTools.Method(typeof(FrontEndCompositionRoot), "Compose").MakeGenericMethod(typeof(object));
  35. }
  36. }
  37. [HarmonyPatch]
  38. class FullGameCreatedEnginePatch
  39. {
  40. public static void Postfix(FullGameCompositionRoot __instance)
  41. {
  42. FullGameFields.Init(__instance);
  43. }
  44. public static MethodBase TargetMethod()
  45. {
  46. return AccessTools.DeclaredConstructor(typeof(FullGameCompositionRoot));
  47. }
  48. }
  49. }