32    {
   33        if (Main.shimmerAlpha > 0f || Main.netMode == 2 || Main.gamePaused)
   34        {
   35            return;
   36        }
   37        if (Main.remixWorld)
   38        {
   39            if (!((double)(Main.player[Main.myPlayer].position.Y / 16f) > Main.rockLayer) || !(Main.player[Main.myPlayer].position.Y / 16f < (float)(Main.maxTilesY - 350)) || Main.player[Main.myPlayer].ZoneDungeon)
   40            {
   41                return;
   42            }
   43        }
   44        else if ((double)Main.screenPosition.Y > Main.worldSurface * 16.0)
   45        {
   46            return;
   47        }
   48        if (Main.gameMenu)
   49        {
   50            return;
   51        }
   52        float num = (float)Main.screenWidth / 1920f;
   53        num *= 25f;
   54        num *= 0.25f + 1f * Main.cloudAlpha;
   56        {
   57            return;
   58        }
   60        for (
int i = 0; (float)i < num; 
i++)
 
   61        {
   62            int num2 = 600;
   63            if (Main.player[Main.myPlayer].velocity.Y < 0f)
   64            {
   65                num2 += (int)(
Math.
Abs(Main.player[Main.myPlayer].velocity.Y) * 30f);
 
   66            }
   67            vector.X = Main.rand.Next((int)Main.screenPosition.X - num2, (int)Main.screenPosition.X + Main.screenWidth + num2);
   68            vector.Y = Main.screenPosition.Y - (float)Main.rand.Next(20, 100);
   69            vector.X -= Main.windSpeedCurrent * 15f * 40f;
   70            vector.X += Main.player[Main.myPlayer].velocity.X * 40f;
   72            {
   73                vector.X = 0f;
   74            }
   75            if (vector.
X > (
float)((Main.maxTilesX - 1) * 16))
 
   76            {
   77                vector.X = (Main.maxTilesX - 1) * 16;
   78            }
   79            int num3 = (int)vector.
X / 16;
 
   80            int num4 = (int)vector.
Y / 16;
 
   81            if (num3 < 0)
   82            {
   83                num3 = 0;
   84            }
   85            if (num3 > Main.maxTilesX - 1)
   86            {
   87                num3 = Main.maxTilesX - 1;
   88            }
   89            if (num4 < 0)
   90            {
   91                num4 = 0;
   92            }
   93            if (num4 > Main.maxTilesY - 1)
   94            {
   95                num4 = Main.maxTilesY - 1;
   96            }
   97            if (Main.remixWorld || Main.gameMenu || (!
WorldGen.SolidTile(num3, num4) && Main.tile[num3, num4].wall <= 0))
 
   98            {
  100                NewRain(vector, rainFallVelocity);
 
  101            }
  102        }
  103    }
static double Abs(double value)
 
static FilterManager Scene
 
static int NewRain(Vector2 Position, Vector2 Velocity)
 
static Vector2 GetRainFallVelocity()