コード例 #1
0
        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));
            }
        }
コード例 #2
0
        private static Color getRainbowSpinnerHue(On.Celeste.CrystalStaticSpinner.orig_GetHue orig, CrystalStaticSpinner self, Vector2 position)
        {
            if (transitionProgress == -1f)
            {
                // no transition is ongoing.
                // if only nextSpinnerController is defined, move it into spinnerControllerOnScreen.
                if (spinnerControllerOnScreen == null)
                {
                    spinnerControllerOnScreen = nextSpinnerController;
                    nextSpinnerController     = null;
                }

                return(getModHue(spinnerControllerOnScreen.colors, spinnerControllerOnScreen.gradientSize, self.Scene, self.Position));
            }
            else
            {
                // get the spinner color in the room we're coming from.
                Color fromRoomColor;
                if (spinnerControllerOnScreen != null)
                {
                    fromRoomColor = getModHue(spinnerControllerOnScreen.colors, spinnerControllerOnScreen.gradientSize, self.Scene, self.Position);
                }
                else
                {
                    fromRoomColor = orig(self, position);
                }

                // get the spinner color in the room we're going to.
                Color toRoomColor;
                if (nextSpinnerController != null)
                {
                    toRoomColor = getModHue(nextSpinnerController.colors, nextSpinnerController.gradientSize, self.Scene, self.Position);
                }
                else
                {
                    toRoomColor = orig(self, position);
                }

                // transition smoothly between both.
                return(Color.Lerp(fromRoomColor, toRoomColor, transitionProgress));
            }
        }
コード例 #3
0
 private static Color getRainbowSpinnerHue(On.Celeste.CrystalStaticSpinner.orig_GetHue orig, CrystalStaticSpinner self, Vector2 position)
 {
     return(getEntityHue(() => orig(self, position), self, position));
 }