Terraria.Rain.MakeRain C# (CSharp) Method

MakeRain() public static method

public static MakeRain ( ) : void
return void
        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);
                }
            }
        }