private static Color getRainbowDecalComponentHue(Func <Component, Vector2, Color> orig, Component self, Vector2 position) { foreach (RainbowSpinnerColorAreaController controller in self.Scene.Tracker.GetEntities <RainbowSpinnerColorAreaController>()) { if (controller.Collider.Collide(position)) { return(RainbowSpinnerColorController.getModHue(controller.colors, controller.gradientSize, self.Scene, position, controller.loopColors, controller.center, controller.gradientSpeed)); } } return(orig(self, position)); }
private static Color getRainbowSpinnerHue(On.Celeste.CrystalStaticSpinner.orig_GetHue orig, CrystalStaticSpinner self, Vector2 position) { RainbowSpinnerColorAreaController controller = self.CollideFirst <RainbowSpinnerColorAreaController>(position); if (controller != null) { // apply the color from the controller we are in. return(RainbowSpinnerColorController.getModHue(controller.colors, controller.gradientSize, self.Scene, position, controller.loopColors, controller.center, controller.gradientSpeed)); } else { // we are not in a controller; apply the vanilla color. return(orig(self, position)); } }