public static void MakeRain()
{
if ((double)Main.screenPosition.Y > Main.worldSurface * 16.0 || Main.gameMenu)
return;
float num1 = (float)Main.screenWidth / 1920f * 25f * (float)(0.25 + 1.0 * (double)Main.cloudAlpha);
for (int index = 0; (double)index < (double)num1; ++index)
{
int num2 = 600;
if ((double)Main.player[Main.myPlayer].velocity.Y < 0.0)
num2 += (int)((double)Math.Abs(Main.player[Main.myPlayer].velocity.Y) * 30.0);
Vector2 Position;
Position.X = (float)Main.rand.Next((int)Main.screenPosition.X - num2, (int)Main.screenPosition.X + Main.screenWidth + num2);
Position.Y = Main.screenPosition.Y - (float)Main.rand.Next(20, 100);
Position.X -= (float)((double)Main.windSpeed * 15.0 * 40.0);
Position.X += Main.player[Main.myPlayer].velocity.X * 40f;
if ((double)Position.X < 0.0)
Position.X = 0.0f;
if ((double)Position.X > (double)((Main.maxTilesX - 1) * 16))
Position.X = (float)((Main.maxTilesX - 1) * 16);
int i = (int)Position.X / 16;
int j = (int)Position.Y / 16;
if (i < 0)
i = 0;
if (i > Main.maxTilesX - 1)
i = Main.maxTilesX - 1;
if (Main.gameMenu || !WorldGen.SolidTile(i, j) && (int)Main.tile[i, j].wall <= 0)
{
Vector2 Velocity = new Vector2(Main.windSpeed * 12f, 14f);
Rain.NewRain(Position, Velocity);
}
}
}