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()