Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ MakeRain()

static void Terraria.Rain.MakeRain ( )
inlinestatic

Definition at line 31 of file Rain.cs.

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;
55 if (Filters.Scene["Sandstorm"].IsActive())
56 {
57 return;
58 }
59 Vector2 vector = default(Vector2);
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;
71 if (vector.X < 0f)
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 {
99 Vector2 rainFallVelocity = GetRainFallVelocity();
100 NewRain(vector, rainFallVelocity);
101 }
102 }
103 }
static double Abs(double value)
static FilterManager Scene
Definition Filters.cs:5
static int NewRain(Vector2 Position, Vector2 Velocity)
Definition Rain.cs:180
static Vector2 GetRainFallVelocity()
Definition Rain.cs:105

References System.Math.Abs(), Terraria.Main.cloudAlpha, Terraria.Main.gameMenu, Terraria.Main.gamePaused, Terraria.Rain.GetRainFallVelocity(), Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Rain.NewRain(), Terraria.Main.player, Terraria.Main.rand, Terraria.Main.remixWorld, Terraria.Main.rockLayer, Terraria.Graphics.Effects.Filters.Scene, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Main.shimmerAlpha, Terraria.WorldGen.SolidTile(), Terraria.Main.tile, Terraria.Main.worldSurface, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Main.DoUpdate().