using ADOFAIRenderer.Core; using HarmonyLib; using UnityEngine; namespace ADOFAIRenderer.Patch.Game; [HarmonyPatch(typeof(PlanetRenderer))] public static class PlanetRendererPatch { [HarmonyPrefix] [HarmonyPatch("SetColor")] // ReSharper disable once InconsistentNaming private static void OverrideColor(PlanetRenderer __instance, ref PlanetColor planetColor) { if (RenderManager.Instance.stage == RenderStage.None) return; var advConf = RenderManager.Instance.Configuration.AdvancedConfig; ApplyColor(ref planetColor, scrController.instance.planetRed, advConf.firePlanetColor); ApplyColor(ref planetColor, scrController.instance.planetBlue, advConf.icePlanetColor); ApplyColor(ref planetColor, scrController.instance.planetGreen, advConf.windPlanetColor); return; void ApplyColor(ref PlanetColor planetColor, scrPlanet targetPlanet, Color? customColor) { if (__instance == targetPlanet.planetRenderer && customColor != null) planetColor = new PlanetColor(customColor.Value); } } }