Beispiel #1
0
 private void RoomCamera_LoadPalette(On.RoomCamera.orig_LoadPalette orig, RoomCamera self, int pal, ref Texture2D texture)
 {
     if (config.NightMode)
     {
         orig(self, nightPalette.PalA, ref texture);
     }
     else
     {
         orig(self, pal, ref texture);
     }
 }
Beispiel #2
0
 private static void LoadPalette(On.RoomCamera.orig_LoadPalette orig, RoomCamera self, int pal, ref Texture2D texture)
 {
     orig.Invoke(self, pal, ref texture);
     if (Downpour.paletteChange)
     {
         Room room = null;
         if (self.loadingRoom != null)
         {
             room = self.loadingRoom;
         }
         else if (self.room != null)
         {
             room = self.room;
         }
         if (room != null)
         {
             //Modify paletteTexture before orig is called.
             Color[] origPalette     = texture.GetPixels();
             Color[] modifiedPalette = new Color[origPalette.Length];
             float   darknessFade    = 1f - Mathf.Lerp(0f, texture.GetPixel(30, 7).r, room.roomSettings.RainIntensity);
             if (self.game.IsArenaSession)
             {
                 Color[] colors        = texture.GetPixels();
                 Color[] newColors     = new Color[colors.Length];
                 Color[] exterior1Cols = Downpour.snowExt1.GetPixels();
                 Color[] interior1Cols = Downpour.snowInt1.GetPixels();
                 for (int i = 0; i < colors.Length; i++)
                 {
                     //Rain
                     if (!Downpour.snow)
                     {
                         newColors[i] = Custom.Desaturate(colors[i], darkness * 0.05f);
                         newColors[i] = Color.Lerp(newColors[i], new Color(0f, 0f, 0f), darkness * 0.05f);
                         texture.SetPixels(newColors);
                     }
                     //Snow
                     else
                     {
                         if (RainFall.rainList.Contains(self.loadingRoom.abstractRoom.name))
                         {
                             newColors[i]     = colors[i];
                             exterior1Cols[i] = Color.Lerp(exterior1Cols[i], new Color(0f, 0f, 0f), 0f);
                             newColors[i]     = Custom.Screen(newColors[i], exterior1Cols[i]);
                             texture.SetPixels(newColors);
                         }
                         else
                         {
                             newColors[i] = colors[i];
                             newColors[i] = Custom.Screen(newColors[i], interior1Cols[i]);
                             texture.SetPixels(newColors);
                         }
                     }
                 }
             }
             else
             {
                 if (Downpour.snow)
                 {
                     //Determine palette needed
                     if (Downpour.rainRegions.Contains(room.world.region.name))
                     {
                         //Exterior
                         if (RainFall.rainList.Contains(room.abstractRoom.name))
                         {
                             Color[] snowPalette = Downpour.snowExt1.GetPixels();
                             for (int i = 0; i < modifiedPalette.Length; i++)
                             {
                                 modifiedPalette[i] = origPalette[i];
                                 modifiedPalette[i] = Custom.Desaturate(modifiedPalette[i], Mathf.Lerp(0.45f, 0f, darknessFade));
                                 snowPalette[i]     = Color.Lerp(snowPalette[i], new Color(0f, 0f, 0f), darknessFade);
                                 modifiedPalette[i] = Custom.Screen(modifiedPalette[i], snowPalette[i]);
                             }
                         }
                         //Interior
                         else
                         {
                             Color[] snowPalette = Downpour.snowInt1.GetPixels();
                             for (int i = 0; i < modifiedPalette.Length; i++)
                             {
                                 modifiedPalette[i] = origPalette[i];
                                 modifiedPalette[i] = Custom.Desaturate(modifiedPalette[i], Mathf.Lerp(0.45f, 0f, darknessFade));
                                 snowPalette[i]     = Color.Lerp(snowPalette[i], new Color(0f, 0f, 0f), darknessFade);
                                 modifiedPalette[i] = Custom.Screen(modifiedPalette[i], snowPalette[i]);
                             }
                         }
                         texture.SetPixels(modifiedPalette);
                         //Shortcut Symbol
                     }
                 }
                 else
                 {
                     Color[] colors    = texture.GetPixels();
                     Color[] newColors = new Color[colors.Length];
                     for (int i = 0; i < colors.Length; i++)
                     {
                         newColors[i] = Custom.Desaturate(colors[i], darkness * 0.05f);
                         newColors[i] = Color.Lerp(newColors[i], new Color(0f, 0f, 0f), darkness * 0.05f);
                     }
                     texture.SetPixels(newColors);
                 }
             }
         }
     }
 }