Unofficial CardLife revival project, pronounced like "celery"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.9KB

  1. using System.Globalization;
  2. using System.Reflection;
  3. using HarmonyLib;
  4. using UnityEngine;
  5. namespace CLre.Fixes
  6. {
  7. [Bugfix(name = "ExclusionImprovement",
  8. description = "Sync exclusion zone collision check with visual location",
  9. more = "https://trello.com/c/Ue4yIqWQ/11-placing-material-in-restricted-areas",
  10. component = BugfixType.HarmonyPatch, id = 2)]
  11. [HarmonyPatch]
  12. class ExclusionZoneCollisionEngine_TestExclusionZoneCollision_Patch
  13. {
  14. [HarmonyPrefix]
  15. public static void BeforeMethodCall(ref Vector3 structurePosition, ref bool __result)
  16. {
  17. if (ResourcePlacementPreviewEngine_GetLerpPosition_Patch.quantizedPosition != Vector3.zero)
  18. {
  19. structurePosition = ResourcePlacementPreviewEngine_GetLerpPosition_Patch.quantizedPosition;
  20. }
  21. }
  22. [HarmonyTargetMethod]
  23. public static MethodBase Target()
  24. {
  25. return AccessTools.Method("Game.Building.ExclusionZone.ExclusionZoneCollisionEngine:TestExclusionZoneCollision");
  26. }
  27. }
  28. [Bugfix(name = "ExclusionImprovement",
  29. description = "Sync exclusion zone collision check with visual location",
  30. more = "https://trello.com/c/Ue4yIqWQ/11-placing-material-in-restricted-areas",
  31. component = BugfixType.HarmonyPatch, id = 2)]
  32. [HarmonyPatch]
  33. class ResourcePlacementPreviewEngine_GetLerpPosition_Patch
  34. {
  35. internal static Vector3 quantizedPosition = Vector3.zero;
  36. [HarmonyPrefix]
  37. public static void BeforeMethodCall(ref Vector3 voxelWorldPos, ref Vector3 __result)
  38. {
  39. quantizedPosition = voxelWorldPos;
  40. }
  41. [HarmonyTargetMethod]
  42. public static MethodBase Target()
  43. {
  44. return AccessTools.Method("Game.Handhelds.ResourcePlacementPreviewEngine:GetLerpPosition");
  45. }
  46. }
  47. }