Patch_DroidManager_UA.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using GadgetCore.API;
  2. using HarmonyLib;
  3. using System.Reflection;
  4. using UnityEngine;
  5. namespace Subworlds.Patches
  6. {
  7. [HarmonyPatch(typeof(DroidManager))]
  8. [HarmonyPatch("UA")]
  9. [HarmonyGadget("SubworldCore")]
  10. public static class Patch_DroidManager_UA
  11. {
  12. public static readonly MethodInfo RPCMethod = typeof(DroidManager).GetMethod("UA", BindingFlags.Public | BindingFlags.Instance);
  13. [HarmonyPostfix]
  14. public static void Postfix(DroidManager __instance, ref int[] d, GameObject[] ___droid, GameObject[] ___droidHead, GameObject[] ___droidBody)
  15. {
  16. for (int i = 0; i < 3; i++)
  17. {
  18. if (d[i] >= 1000)
  19. {
  20. ___droid[i].transform.parent = null;
  21. ___droid[i].SetActive(true);
  22. ___droidHead[i].GetComponent<Renderer>().material = GadgetCoreAPI.GetDroidHeadMaterial(d[i] - 1000);
  23. ___droidBody[i].GetComponent<Renderer>().material = GadgetCoreAPI.GetDroidBodyMaterial(d[i] - 1000);
  24. }
  25. else
  26. {
  27. ___droid[i].SetActive(false);
  28. ___droid[i].transform.parent = __instance.transform;
  29. }
  30. }
  31. }
  32. }
  33. }