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

◆ UpdateClouds()

static void Terraria.Cloud.UpdateClouds ( )
inlinestatic

Definition at line 246 of file Cloud.cs.

247 {
248 if (Main.netMode == 2)
249 {
250 return;
251 }
252 int num = 0;
253 for (int i = 0; i < 200; i++)
254 {
255 if (Main.cloud[i].active)
256 {
257 Main.cloud[i].Update();
258 if (!Main.cloud[i].kill)
259 {
260 num++;
261 }
262 }
263 }
264 for (int j = 0; j < 200; j++)
265 {
266 if (Main.cloud[j].active)
267 {
268 if (j > 1 && (!Main.cloud[j - 1].active || (double)Main.cloud[j - 1].scale > (double)Main.cloud[j].scale + 0.02))
269 {
270 Cloud cloud = (Cloud)Main.cloud[j - 1].Clone();
271 Main.cloud[j - 1] = (Cloud)Main.cloud[j].Clone();
272 Main.cloud[j] = cloud;
273 }
274 if (j < 199 && (!Main.cloud[j].active || (double)Main.cloud[j + 1].scale < (double)Main.cloud[j].scale - 0.02))
275 {
276 Cloud cloud2 = (Cloud)Main.cloud[j + 1].Clone();
277 Main.cloud[j + 1] = (Cloud)Main.cloud[j].Clone();
278 Main.cloud[j] = cloud2;
279 }
280 }
281 }
282 if (num < Main.numClouds)
283 {
284 addCloud();
285 }
286 else if (num > Main.numClouds)
287 {
288 int num2 = rand.Next(num);
289 int num3 = 0;
290 while (Main.cloud[num2].kill && num3 < 100)
291 {
292 num3++;
293 num2 = rand.Next(num);
294 }
295 Main.cloud[num2].kill = true;
296 }
297 }
static void addCloud()
Definition Cloud.cs:57
static UnifiedRandom rand
Definition Cloud.cs:34

References Terraria.Cloud.addCloud(), Terraria.Main.cloud, Terraria.Main.netMode, Terraria.Main.numClouds, and Terraria.Cloud.rand.

Referenced by Terraria.Main.DoUpdate(), and Terraria.Main.DrawMenu().