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;
}
}