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

◆ Update()

void Terraria.Cloud.Update ( )
inline

Definition at line 299 of file Cloud.cs.

300 {
301 if (WorldGen.drunkWorldGenText && Main.gameMenu)
302 {
303 type = 28;
304 }
305 if (scale == 1f)
306 {
307 scale -= 0.0001f;
308 }
309 if ((double)scale == 1.15)
310 {
311 scale -= 0.0001f;
312 }
313 float num = 0.13f;
314 if (scale < 1f)
315 {
316 num = 0.07f;
317 float num2 = scale + 0.15f;
318 num2 = (num2 + 1f) / 2f;
319 num2 *= num2;
320 num *= num2;
321 }
322 else if ((double)scale <= 1.15)
323 {
324 num = 0.19f;
325 float num3 = scale - 0.075f;
326 num3 *= num3;
327 num *= num3;
328 }
329 else
330 {
331 num = 0.23f;
332 float num4 = scale - 0.15f - 0.075f;
333 num4 *= num4;
334 num *= num4;
335 }
336 position.X += Main.windSpeedCurrent * 9f * num * (float)Main.dayRate;
337 float num5 = Main.screenPosition.X - Main.screenLastPosition.X;
338 position.X -= num5 * num;
339 float num6 = 600f;
340 if (Main.bgAlphaFrontLayer[4] == 1f && position.Y > 200f)
341 {
342 kill = true;
343 Alpha -= 0.005f * (float)Main.dayRate;
344 }
345 if (!kill)
346 {
347 if (Alpha < 1f)
348 {
349 Alpha += 0.001f * (float)Main.dayRate;
350 if (Alpha > 1f)
351 {
352 Alpha = 1f;
353 }
354 }
355 }
356 else
357 {
358 Alpha -= 0.001f * (float)Main.dayRate;
359 if (Alpha <= 0f)
360 {
361 active = false;
362 }
363 }
364 if (position.X + (float)TextureAssets.Cloud[type].Width() * scale < 0f - num6 || position.X > (float)Main.screenWidth + num6)
365 {
366 active = false;
367 }
368 rSpeed += (float)rand.Next(-10, 11) * 2E-05f;
369 if ((double)rSpeed > 0.0002)
370 {
371 rSpeed = 0.0002f;
372 }
373 if ((double)rSpeed < -0.0002)
374 {
375 rSpeed = -0.0002f;
376 }
377 if ((double)rotation > 0.02)
378 {
379 rotation = 0.02f;
380 }
381 if ((double)rotation < -0.02)
382 {
383 rotation = -0.02f;
384 }
385 rotation += rSpeed;
386 width = (int)((float)TextureAssets.Cloud[type].Width() * scale);
387 height = (int)((float)TextureAssets.Cloud[type].Height() * scale);
388 if (type >= 9 && type <= 13 && (Main.cloudAlpha > 0f || Main.cloudBGActive >= 1f))
389 {
390 kill = true;
391 }
392 }
bool active
Definition Cloud.cs:20
float scale
Definition Cloud.cs:12
float rotation
Definition Cloud.cs:14
static UnifiedRandom rand
Definition Cloud.cs:34
float Alpha
Definition Cloud.cs:30
Vector2 position
Definition Cloud.cs:10
float rSpeed
Definition Cloud.cs:16
bool kill
Definition Cloud.cs:32
static Asset< Texture2D >[] Cloud

References Terraria.Cloud.active, Terraria.Cloud.Alpha, Terraria.Main.bgAlphaFrontLayer, Terraria.GameContent.TextureAssets.Cloud, Terraria.Main.cloudAlpha, Terraria.Main.cloudBGActive, Terraria.Main.dayRate, Terraria.WorldGen.drunkWorldGenText, Terraria.Main.gameMenu, Terraria.Cloud.height, Terraria.Cloud.kill, Terraria.Cloud.position, Terraria.Cloud.rand, Terraria.Cloud.rotation, Terraria.Cloud.rSpeed, Terraria.Cloud.scale, Terraria.Main.screenLastPosition, Terraria.Main.screenWidth, Terraria.Cloud.type, Terraria.Cloud.width, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.