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

◆ Update()

override void Terraria.GameContent.Shaders.SepiaScreenShaderData.Update ( GameTime gameTime)
inlinevirtual

Reimplemented from Terraria.Graphics.Shaders.ScreenShaderData.

Definition at line 14 of file SepiaScreenShaderData.cs.

15 {
16 float x = (Main.screenPosition.Y + (float)(Main.screenHeight / 2)) / 16f;
17 float num = 1f - Utils.SmoothStep((float)Main.worldSurface, (float)Main.worldSurface + 30f, x);
19 Vector3 vector = (value = new Vector3(0.191f, -0.054f, -0.221f));
20 Vector3 value2 = vector * 0.5f;
21 Vector3 value3 = new Vector3(0f, -0.03f, 0.15f);
22 Vector3 value4 = new Vector3(-0.11f, 0.01f, 0.16f);
23 float cloudAlpha = Main.cloudAlpha;
24 GetDaylightPowers(out var nightlightPower, out var daylightPower, out var moonPower, out var dawnPower);
25 float num2 = nightlightPower * 0.13f;
26 if (Main.starGame)
27 {
28 float num3 = (float)Main.starGameMath() - 1f;
29 nightlightPower = num3;
30 daylightPower = 1f - num3;
31 moonPower = num3;
32 dawnPower = 1f - num3;
33 num2 = nightlightPower * 0.13f;
34 }
35 else if (!Main.dayTime)
36 {
37 if (Main.GetMoonPhase() == MoonPhase.Full)
38 {
39 value = new Vector3(-0.19f, 0.01f, 0.22f);
40 num2 += 0.07f * moonPower;
41 }
42 if (Main.bloodMoon)
43 {
44 value = new Vector3(0.2f, -0.1f, -0.221f);
45 num2 = 0.2f;
46 }
47 }
48 nightlightPower *= num;
49 daylightPower *= num;
50 moonPower *= num;
51 dawnPower *= num;
52 UseOpacity(1f);
53 UseIntensity(1.4f - daylightPower * 0.2f);
54 float value5 = 0.3f - num2 * nightlightPower;
55 value5 = MathHelper.Lerp(value5, 0.1f, cloudAlpha);
56 float value6 = 0.2f;
57 value5 = MathHelper.Lerp(value5, value6, 1f - num);
58 UseProgress(value5);
59 Vector3 value7 = Vector3.Lerp(vector, value, moonPower);
60 value7 = Vector3.Lerp(value7, value3, dawnPower);
61 value7 = Vector3.Lerp(value7, value4, cloudAlpha);
62 value7 = Vector3.Lerp(value7, value2, 1f - num);
63 UseColor(value7);
64 }
static float Lerp(float value1, float value2, float amount)
Definition MathHelper.cs:53
static void GetDaylightPowers(out float nightlightPower, out float daylightPower, out float moonPower, out float dawnPower)
ScreenShaderData UseProgress(float progress)
ScreenShaderData UseIntensity(float intensity)
ScreenShaderData UseOpacity(float opacity)
ScreenShaderData UseColor(float r, float g, float b)
static Vector3 Lerp(Vector3 value1, Vector3 value2, float amount)
Definition Vector3.cs:307

References Terraria.Main.bloodMoon, Terraria.Main.cloudAlpha, Terraria.Main.dayTime, Terraria.GameContent.Shaders.SepiaScreenShaderData.GetDaylightPowers(), Terraria.Main.GetMoonPhase(), Microsoft.Xna.Framework.MathHelper.Lerp(), Microsoft.Xna.Framework.Vector3.Lerp(), Terraria.Main.screenHeight, Terraria.Utils.SmoothStep(), Terraria.Main.starGame, Terraria.Main.starGameMath(), Terraria.Graphics.Shaders.ScreenShaderData.UseColor(), Terraria.Graphics.Shaders.ScreenShaderData.UseIntensity(), Terraria.Graphics.Shaders.ScreenShaderData.UseOpacity(), Terraria.Graphics.Shaders.ScreenShaderData.UseProgress(), and Terraria.Main.worldSurface.