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

◆ NewRain()

static int Terraria.Rain.NewRain ( Vector2 Position,
Vector2 Velocity )
inlinestaticprivate

Definition at line 180 of file Rain.cs.

181 {
182 int num = -1;
183 int num2 = (int)((float)Main.maxRain * Main.cloudAlpha);
184 if (num2 > Main.maxRain)
185 {
186 num2 = Main.maxRain;
187 }
188 float num3 = (float)Main.maxTilesX / 6400f;
189 Math.Max(0f, Math.Min(1f, (Main.player[Main.myPlayer].position.Y / 16f - 85f * num3) / (60f * num3)));
190 float num4 = (1f + Main.gfxQuality) / 2f;
191 if ((double)num4 < 0.9)
192 {
193 num2 = (int)((float)num2 * num4);
194 }
195 float num5 = 800 - Main.SceneMetrics.SnowTileCount;
196 if (num5 < 0f)
197 {
198 num5 = 0f;
199 }
200 num5 /= 800f;
201 num2 = (int)((float)num2 * num5);
202 num2 = (int)((double)num2 * Math.Pow(Main.atmo, 9.0));
203 if ((double)Main.atmo < 0.4)
204 {
205 num2 = 0;
206 }
207 for (int i = 0; i < num2; i++)
208 {
209 if (!Main.rain[i].active)
210 {
211 num = i;
212 break;
213 }
214 }
215 if (num == -1)
216 {
217 return Main.maxRain;
218 }
219 Rain rain = Main.rain[num];
220 rain.active = true;
221 rain.position = Position;
222 rain.scale = 1f + (float)Main.rand.Next(-20, 21) * 0.01f;
223 rain.velocity = Velocity * rain.scale;
224 rain.rotation = (float)Math.Atan2(rain.velocity.X, 0f - rain.velocity.Y);
225 rain.type = (byte)(Main.waterStyle * 3 + Main.rand.Next(3));
226 return num;
227 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static double Atan2(double y, double x)
static double Pow(double x, double y)
static byte Max(byte val1, byte val2)
Definition Math.cs:738

References System.Math.Atan2(), Terraria.Main.atmo, Terraria.Main.cloudAlpha, Terraria.Main.gfxQuality, System.Math.Max(), Terraria.Main.maxRain, Terraria.Main.maxTilesX, System.Math.Min(), Terraria.Main.myPlayer, Terraria.Main.player, System.Math.Pow(), Terraria.Main.rain, Terraria.Main.rand, Terraria.Rain.scale, Terraria.Main.SceneMetrics, Terraria.Rain.velocity, Terraria.Main.waterStyle, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Rain.MakeRain().