Exemple #1
0
            public static LightArrangement CreateArrangement(BeatmapEventData data)
            {
                LightArrangement arr = new LightArrangement();

                switch (data.value)
                {
                case 0:
                    arr.enabled = false;
                    arr.color   = null;
                    break;

                case 1:
                case 2:
                case 3:
                    arr.color   = GetCSO(colour1);
                    arr.enabled = true;
                    break;

                case 5:
                case 6:
                case 7:
                    arr.color   = GetCSO(colour0);
                    arr.enabled = true;
                    break;

                default:
                    arr.enabled = false;
                    arr.color   = null;
                    break;
                }

                return(arr);
            }
Exemple #2
0
 public static void HandleGlobalCPLightEvent(LightArrangement arr)
 {
     foreach (ConnectedPlayerLighting c in connectedPlayerLighting)
     {
         foreach (TubeBloomPrePassLight light in c.allLasers)
         {
             HandleCPLightEvent(light, arr);
         }
     }
 }
Exemple #3
0
 public static void HandleLightEvent(DirectionalLight light, LightArrangement arr)
 {
     if (ringErr)
     {
         return;
     }
     try
     {
         light.gameObject.SetActive(arr.enabled);
         light.enabled = arr.enabled;
         light.color   = arr.color;
     }
     catch (Exception e)
     {
         Plugin.Log.Critical("Ring error 2: " + e.Message);
     }
 }
Exemple #4
0
 public static void HandleLightEvent(TubeBloomPrePassLight light, LightArrangement arr)
 {
     if (playerLaserErr)
     {
         return;
     }
     try
     {
         light.gameObject.SetActive(arr.enabled);
         light.enabled = arr.enabled;
         light.color   = arr.color;
     }
     catch (Exception e)
     {
         Plugin.Log.Critical("Laser error: " + e.Message);
     }
 }
Exemple #5
0
 public static void HandleRingEvent(LightArrangement arr)
 {
     if (ringErr)
     {
         return;
     }
     try
     {
         HandleLightEvent(ringLightBehind, arr);
         HandleLightEvent(ringLightFront, arr);
         HandleLightEvent(farLaserLeft, arr);
         HandleLightEvent(farLaserRight, arr);
     }
     catch (Exception e)
     {
         ringErr = true;
         Plugin.Log.Critical("Ring error: " + e.Message);
     }
 }
Exemple #6
0
 public static void HandleCPLightEvent(TubeBloomPrePassLight light, LightArrangement arr)
 {
     try
     {
         light.enabled = arr.enabled;
         if (arr.enabled)
         {
             light.gameObject.SetActive(arr.enabled);
             light.color = arr.color;
         }
         else
         {
             light.color = cpOffColour;
         }
     }
     catch (Exception e)
     {
         Plugin.Log.Critical("CP Laser error: " + e.Message);
     }
 }
Exemple #7
0
            public static void Postfix([HarmonyArgument(0)] BeatmapEventData data)
            {
                if (loadError)
                {
                    return;
                }
                if (!isInMultiplayer)
                {
                    return;
                }
                if (staticLights)
                {
                    return;
                }
                if (!loadedLights)
                {
                    LoadLights();
                }

                LightArrangement arr = CreateArrangement(data);

                switch (data.type)
                {
                case BeatmapEventType.Event0:
                {
                    HandleLightEvent(backLaserLeft, arr);
                    HandleLightEvent(backLaserRight, arr);
                    foreach (ConnectedPlayerLighting c in connectedPlayerLighting)
                    {
                        HandleCPLightEvent(c.downLaserLeft, arr);
                        HandleCPLightEvent(c.downLaserRight, arr);
                        HandleCPLightEvent(c.downLaserConnector, arr);
                    }
                    break;
                }

                case BeatmapEventType.Event1:
                {
                    HandleRingEvent(arr);
                    foreach (ConnectedPlayerLighting c in connectedPlayerLighting)
                    {
                        HandleCPLightEvent(c.extendedLaserLeft, arr);
                        HandleCPLightEvent(c.extendedLaserRight, arr);
                    }
                    break;
                }

                case BeatmapEventType.Event2:
                {
                    HandleLightEvent(laserLeft, arr);
                    foreach (ConnectedPlayerLighting c in connectedPlayerLighting)
                    {
                        HandleCPLightEvent(c.laserLeft, arr);
                    }

                    break;
                }

                case BeatmapEventType.Event3:
                {
                    HandleLightEvent(laserRight, arr);
                    HandleLightEvent(laserLeft, arr);
                    foreach (ConnectedPlayerLighting c in connectedPlayerLighting)
                    {
                        HandleCPLightEvent(c.laserRight, arr);
                    }
                    break;
                }

                case BeatmapEventType.Event4:
                {
                    HandleLightEvent(behindLaserLeft, arr);
                    HandleLightEvent(behindLaserRight, arr);
                    HandleLightEvent(ringLightLeft, arr);
                    HandleLightEvent(ringLightRight, arr);
                    foreach (ConnectedPlayerLighting c in connectedPlayerLighting)
                    {
                        HandleCPLightEvent(c.laserFront, arr);
                    }
                    break;
                }

                case BeatmapEventType.Event5:
                {
                    HandleBoost(data.value);
                    break;
                }

                default:
                {
                    break;
                }
                }
            }