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

◆ SpawnStars()

static void Terraria.Star.SpawnStars ( int s = -1)
inlinestatic

Definition at line 84 of file Star.cs.

85 {
87 int num = fastRandom.Next(200, 400);
88 int num2 = 0;
89 int num3 = num;
90 if (s >= 0)
91 {
92 num2 = s;
93 num3 = s + 1;
94 }
95 for (int i = num2; i < num3; i++)
96 {
97 Main.star[i] = new Star();
98 if (s >= 0)
99 {
100 Main.star[i].fadeIn = 1f;
101 int num4 = 10;
102 int num5 = -2000;
103 for (int j = 0; j < num4; j++)
104 {
105 float num6 = fastRandom.Next(1921);
106 int num7 = 2000;
107 for (int k = 0; k < Main.numStars; k++)
108 {
109 if (k != s && !Main.star[k].hidden && !Main.star[k].falling)
110 {
111 int num8 = (int)Math.Abs(num6 - Main.star[k].position.X);
112 if (num8 < num7)
113 {
114 num7 = num8;
115 }
116 }
117 }
118 if (s == 0 || num7 > num5)
119 {
120 num5 = num7;
121 Main.star[i].position.X = num6;
122 }
123 }
124 }
125 else
126 {
127 Main.star[i].position.X = fastRandom.Next(1921);
128 }
129 Main.star[i].position.Y = fastRandom.Next(1201);
130 Main.star[i].rotation = (float)fastRandom.Next(628) * 0.01f;
131 Main.star[i].scale = (float)fastRandom.Next(70, 130) * 0.006f;
132 Main.star[i].type = fastRandom.Next(0, 4);
133 Main.star[i].twinkle = (float)fastRandom.Next(60, 101) * 0.01f;
134 Main.star[i].twinkleSpeed = (float)fastRandom.Next(30, 110) * 0.0001f;
135 if (fastRandom.Next(2) == 0)
136 {
137 Main.star[i].twinkleSpeed *= -1f;
138 }
139 Main.star[i].rotationSpeed = (float)fastRandom.Next(5, 50) * 0.0001f;
140 if (fastRandom.Next(2) == 0)
141 {
142 Main.star[i].rotationSpeed *= -1f;
143 }
144 if (fastRandom.Next(40) == 0)
145 {
146 Main.star[i].scale *= 2f;
147 Main.star[i].twinkleSpeed /= 2f;
148 Main.star[i].rotationSpeed /= 2f;
149 }
150 }
151 if (s == -1)
152 {
153 Main.numStars = num;
154 }
155 }
static double Abs(double value)
static FastRandom CreateWithRandomSeed()
Definition FastRandom.cs:37

References System.Math.Abs(), Terraria.Utilities.FastRandom.CreateWithRandomSeed(), Terraria.Utilities.FastRandom.Next(), Terraria.Main.numStars, System.s, and Terraria.Main.star.

Referenced by Terraria.WorldGen.clearWorld(), Terraria.Main.DoUpdate(), Terraria.Main.DrawSunAndMoon(), Terraria.Main.Initialize_AlmostEverything(), and Terraria.Star.UpdateStars().