Terraria.Cloud.UpdateClouds C# (CSharp) Method

UpdateClouds() public static method

public static UpdateClouds ( ) : void
return void
        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;
            }
        }