示例#1
0
        private void RecolourWall(StretchableCube wall, float time)
        {
            Color color = ColourManager.GetBarrierColour(time);

            if (color == ColourManager.DefaultBarrierColour || color == Color.clear)
            {
                return;
            }

            foreach (Transform component in wall.transform.parent.parent)
            {
                foreach (Transform child in component.transform)
                {
                    MeshRenderer ren = child.GetComponent <MeshRenderer>();
                    if (ren.material.color != Color.clear)
                    {
                        ren.material.color = color;
                    }
                }
            }

            MeshRenderer r   = wall.GetComponent <MeshRenderer>();
            float        cor = (3f * ColourManager.barrierColourCorrectionScale) + 1;//4f * ColourManager.barrierColourCorrectionScale;

            r.material.SetColor("_AddColor", (color / (4f * ColourManager.barrierColourCorrectionScale)).ColorWithAlpha(0f));
        }
示例#2
0
 public virtual void HandleObstacleDiStartMovementEvent(BeatmapObjectSpawnController obstacleSpawnController, ObstacleController obstacleController)
 {
     try
     {
         StretchableObstacle _stretchableObstacle = ReflectionUtil.GetPrivateField <StretchableObstacle>(obstacleController, "_stretchableObstacle");
         StretchableCube     _stretchableCore     = ReflectionUtil.GetPrivateField <StretchableCube>(_stretchableObstacle, "_stretchableCore");
         //MeshRenderer _meshRenderer = ReflectionUtil.GetPrivateField<MeshRenderer>(_stretchableCore, "_mesh");
         _stretchableCore.gameObject.layer = WallLayer;
     }
     catch (Exception ex)
     {
         Logger.log.Error($"TransparentWall.HandleObstacleDiStartMovementEvent(BeatmapObjectSpawnController, ObstacleController) has thrown an exception: {ex.Message}\n{ex.StackTrace}");
     }
 }
 public virtual void HandleObstacleDiStartMovementEvent(BeatmapObjectSpawnController obstacleSpawnController, ObstacleController obstacleController)
 {
     try
     {
         StretchableObstacle _stretchableObstacle    = ReflectionUtil.GetPrivateField <StretchableObstacle>(obstacleController, "_stretchableObstacle");
         StretchableCube     _stretchableCoreOutside = ReflectionUtil.GetPrivateField <StretchableCube>(_stretchableObstacle, "_stretchableCoreOutside");
         StretchableCube     _stretchableCoreInside  = ReflectionUtil.GetPrivateField <StretchableCube>(_stretchableObstacle, "_stretchableCoreInside");
         //MeshRenderer _meshRenderer = ReflectionUtil.GetPrivateField<MeshRenderer>(_stretchableCoreOutside, "_meshRenderer");
         //MeshRenderer _meshRenderer2 = ReflectionUtil.GetPrivateField<MeshRenderer>(_stretchableCoreInside, "_meshRenderer");
         _stretchableCoreOutside.gameObject.layer = WallLayer;
         _stretchableCoreInside.gameObject.layer  = WallLayer;
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
     }
 }
示例#4
0
        private void HandleObstacleDidStartMovementEvent(BeatmapObjectSpawnController obstacleSpawnController, ObstacleController obstacleController)
        {
            try {
                StretchableObstacle stretchableObstacle    = ReflectionUtil.GetField <StretchableObstacle>(obstacleController, "_stretchableObstacle");
                StretchableCube     stretchableCoreOutside = ReflectionUtil.GetField <StretchableCube>(stretchableObstacle, "_stretchableCoreOutside");
                StretchableCube     stretchableCoreInside  = ReflectionUtil.GetField <StretchableCube>(stretchableObstacle, "_stretchableCoreInside");
                bool didRecolour = VFX.VFXRainbowBarriers.IsRainbowWalls();

                ChromaHandleBarrierSpawnedEvent?.Invoke(ref stretchableObstacle, ref stretchableCoreOutside, ref stretchableCoreInside, ref obstacleSpawnController, ref obstacleController, ref didRecolour);

                if (!didRecolour)
                {
                    RecolourWall(stretchableCoreInside, obstacleController.obstacleData.time);
                    RecolourWall(stretchableCoreOutside, obstacleController.obstacleData.time);
                }
            } catch (Exception e) {
                ChromaLogger.Log(e);
            }
        }
示例#5
0
 public virtual void HandleObstacleDidStartMovementEvent(BeatmapObjectSpawnController obstacleSpawnController, ObstacleController obstacleController)
 {
     try
     {
         StretchableObstacle _stretchableObstacle = ReflectionUtil.GetPrivateField <StretchableObstacle>(obstacleController, "_stretchableObstacle");
         StretchableCube     _stretchableCore     = ReflectionUtil.GetPrivateField <StretchableCube>(_stretchableObstacle, "_stretchableCore");
         Transform           _obstacleCore        = ReflectionUtil.GetPrivateField <Transform>(_stretchableObstacle, "_obstacleCore");
         //MeshRenderer _meshRenderer = ReflectionUtil.GetPrivateField<MeshRenderer>(_stretchableCoreOutside, "_meshRenderer");
         //MeshRenderer _meshRenderer2 = ReflectionUtil.GetPrivateField<MeshRenderer>(_stretchableCoreInside, "_meshRenderer");
         Logger.log.Debug("Setting stretchableCore layer to: " + Plugin.WallLayer + " from: " + _stretchableCore.gameObject.layer);
         Logger.log.Debug("Setting obstacleCore layer to: " + Plugin.WallLayer + " from: " + _obstacleCore.gameObject.layer);
         Logger.log.Debug("ObstacleController has layer: " + obstacleController.gameObject.layer);
         Logger.log.Debug("_stretchableObstacle has layer: " + _stretchableObstacle.gameObject.layer);
         _stretchableCore.gameObject.layer = Plugin.WallLayer;
         _obstacleCore.gameObject.layer    = Plugin.WallLayer;
     }
     catch (Exception ex)
     {
         Logger.log.Error(ex);
     }
 }
示例#6
0
        private void HandleObstacleDidStartMovementEvent(BeatmapObjectSpawnController obstacleSpawnController, ObstacleController obstacleController)
        {
            try {
                StretchableObstacle             stretchableObstacle = ReflectionUtil.GetField <StretchableObstacle>(obstacleController, "_stretchableObstacle");
                StretchableCube                 stretchableCore     = ReflectionUtil.GetField <StretchableCube>(stretchableObstacle, "_stretchableCore");
                ParametricBoxFrameController    frameController     = ReflectionUtil.GetField <ParametricBoxFrameController>(stretchableObstacle, "_obstacleFrame");
                ParametricBoxFakeGlowController fakeGlowController  = ReflectionUtil.GetField <ParametricBoxFakeGlowController>(stretchableObstacle, "_obstacleFakeGlow");
                float time  = obstacleController.obstacleData.time;
                Color color = ColourManager.GetBarrierColour(time);
                frameController.color    = color;
                fakeGlowController.color = color;
                bool didRecolour = VFX.VFXRainbowBarriers.IsRainbowWalls();

                ChromaHandleBarrierSpawnedEvent?.Invoke(ref stretchableObstacle, ref obstacleSpawnController, ref obstacleController, ref didRecolour);

                if (!didRecolour && color != ColourManager.DefaultBarrierColour && color != Color.clear)
                {
                    RecolourWall(stretchableCore, ColourManager.GetCorrectedBarrierColour(time));
                }
            } catch (Exception e) {
                ChromaLogger.Log(e);
            }
        }
示例#7
0
        private void RecolourWall(StretchableCube wall, Color color)
        {
            CustomUI.Utilities.UIUtilities.PrintHierarchy(wall.transform.parent);
            foreach (Transform component in wall.transform.parent)
            {
                foreach (Transform child in component.transform)
                {
                    try {
                        MeshRenderer ren = child.GetComponent <MeshRenderer>();
                        if (ren.material.color != Color.clear)
                        {
                            ren.material.color = color;
                        }
                    } catch (Exception) {
                        // This doesn't have a color
                        // It could be the Collider
                    }
                }
            }

            MeshRenderer r = wall.GetComponent <MeshRenderer>();

            r.material.SetColor("_AddColor", color);
        }
示例#8
0
 public static void Postfix(StretchableCube __instance)
 {
     __instance.gameObject.layer = WallLayerMask;
 }