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

◆ Update()

void Terraria.Cloud.Update ( )
inline

Definition at line 305 of file Cloud.cs.

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