Terraria.Cloud.Update C# (CSharp) Method

Update() public method

public Update ( ) : void
return void
        public void Update()
        {
            if (Main.gameMenu)
            {
                position.X += (float)(Main.windSpeed * scale * 3.0);
            }
            else
            {
                if (scale == 1.0)
                    scale -= 0.0001f;
                if (scale == 1.15)
                    scale -= 0.0001f;
                float num1;
                if (scale < 1.0)
                {
                    float num2 = 0.07f;
                    float num3 = (float)(((scale + 0.15f) + 1.0) / 2.0);
                    float num4 = num3 * num3;
                    num1 = num2 * num4;
                }
                else if (scale <= 1.15)
                {
                    float num2 = 0.19f;
                    float num3 = scale - 0.075f;
                    float num4 = num3 * num3;
                    num1 = num2 * num4;
                }
                else
                {
                    float num2 = 0.23f;
                    float num3 = (float)(scale - 0.150000005960464 - 0.0750000029802322);
                    float num4 = num3 * num3;
                    num1 = num2 * num4;
                }
                position.X += (float)(Main.windSpeed * (double)num1 * 5.0) * Main.dayRate;
                position.X -= (Main.screenPosition.X - Main.screenLastPosition.X) * num1;
            }
            float num = 600f;
            if (!kill)
            {
                if (Alpha < 1.0)
                {
                    Alpha += 1.0f / 1000.0f * Main.dayRate;
                    if (Alpha > 1.0)
                        Alpha = 1f;
                }
            }
            else
            {
                Alpha -= 1.0f / 1000.0f * Main.dayRate;
                if (Alpha <= 0.0)
                    active = false;
            }
            if (position.X + Main.cloudTexture[type].Width * (double)scale < -num || position.X > Main.screenWidth + (double)num)
                active = false;
            rSpeed += rand.Next(-10, 11) * 2E-05f;
            if (rSpeed > 0.0002)
                rSpeed = 0.0002f;
            if (rSpeed < -0.0002)
                rSpeed = -0.0002f;
            if (rotation > 0.02)
                rotation = 0.02f;
            if (rotation < -0.02)
                rotation = -0.02f;
            rotation += rSpeed;
            width = (int)(Main.cloudTexture[type].Width * (double)scale);
            height = (int)(Main.cloudTexture[type].Height * (double)scale);
            if (type < 9 || type > 13 || Main.cloudAlpha <= 0.0 && Main.cloudBGActive < 1.0)
                return;
            kill = true;
        }
    }