public static void UpdateClouds()
{
if (Main.netMode == 2)
return;
int maxValue = 0;
for (int index = 0; index < 200; ++index)
{
if (Main.cloud[index].active)
{
Main.cloud[index].Update();
if (!Main.cloud[index].kill)
++maxValue;
}
}
for (int index = 0; index < 200; ++index)
{
if (Main.cloud[index].active)
{
if (index > 1 && (!Main.cloud[index - 1].active || Main.cloud[index - 1].scale > Main.cloud[index].scale + 0.02))
{
Cloud cloud = (Cloud)Main.cloud[index - 1].Clone();
Main.cloud[index - 1] = (Cloud)Main.cloud[index].Clone();
Main.cloud[index] = cloud;
}
if (index < 199 && (!Main.cloud[index].active || Main.cloud[index + 1].scale < Main.cloud[index].scale - 0.02))
{
Cloud cloud = (Cloud)Main.cloud[index + 1].Clone();
Main.cloud[index + 1] = (Cloud)Main.cloud[index].Clone();
Main.cloud[index] = cloud;
}
}
}
if (maxValue < Main.numClouds)
{
addCloud();
}
else
{
if (maxValue <= Main.numClouds)
return;
int index1 = Main.rand.Next(maxValue);
for (int index2 = 0; Main.cloud[index1].kill && index2 < 100; index1 = Main.rand.Next(maxValue))
++index2;
Main.cloud[index1].kill = true;
}
}