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

◆ Apply() [2/2]

virtual void Terraria.Graphics.Shaders.HairShaderData.Apply ( Player player,
DrawData? drawData = null )
inlinevirtual

Reimplemented in Terraria.GameContent.Dyes.TwilightHairDyeShaderData.

Definition at line 31 of file HairShaderData.cs.

32 {
33 if (!_shaderDisabled)
34 {
35 base.Shader.Parameters["uColor"].SetValue(_uColor);
36 base.Shader.Parameters["uSaturation"].SetValue(_uSaturation);
37 base.Shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor);
38 base.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly);
39 base.Shader.Parameters["uOpacity"].SetValue(_uOpacity);
40 base.Shader.Parameters["uTargetPosition"].SetValue(_uTargetPosition);
41 if (drawData.HasValue)
42 {
43 DrawData value = drawData.Value;
44 Vector4 value2 = new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height);
45 base.Shader.Parameters["uSourceRect"].SetValue(value2);
46 base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
47 base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
48 }
49 else
50 {
51 base.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f));
52 }
53 if (_uImage != null)
54 {
55 Main.graphics.GraphicsDevice.Textures[1] = _uImage.Value;
56 base.Shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage.Width(), _uImage.Height()));
57 }
58 if (player != null)
59 {
60 base.Shader.Parameters["uDirection"].SetValue((float)player.direction);
61 }
62 Apply();
63 }
64 }

References Terraria.Graphics.Shaders.HairShaderData._shaderDisabled, Terraria.Graphics.Shaders.HairShaderData._uColor, Terraria.Graphics.Shaders.HairShaderData._uImage, Terraria.Graphics.Shaders.HairShaderData._uOpacity, Terraria.Graphics.Shaders.HairShaderData._uSaturation, Terraria.Graphics.Shaders.HairShaderData._uSecondaryColor, Terraria.Graphics.Shaders.HairShaderData._uTargetPosition, Terraria.Graphics.Shaders.ShaderData.Apply(), Terraria.Entity.direction, Terraria.Main.GlobalTimeWrappedHourly, Terraria.Main.graphics, Terraria.Main.screenPosition, ReLogic.Content.Asset< T >.Value, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Graphics.Vector4.