Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HairShaderData.cs
Go to the documentation of this file.
1
using
Microsoft.Xna.Framework
;
2
using
Microsoft.Xna.Framework.Graphics
;
3
using
ReLogic.Content
;
4
using
Terraria.DataStructures
;
5
6
namespace
Terraria.Graphics.Shaders
;
7
8
public
class
HairShaderData
:
ShaderData
9
{
10
protected
Vector3
_uColor
=
Vector3
.
One
;
11
12
protected
Vector3
_uSecondaryColor
=
Vector3
.
One
;
13
14
protected
float
_uSaturation
= 1f;
15
16
protected
float
_uOpacity
= 1f;
17
18
protected
Asset<Texture2D>
_uImage
;
19
20
protected
bool
_shaderDisabled
;
21
22
private
Vector2
_uTargetPosition
=
Vector2
.
One
;
23
24
public
bool
ShaderDisabled
=>
_shaderDisabled
;
25
26
public
HairShaderData
(
Ref<Effect>
shader,
string
passName)
27
: base(shader, passName)
28
{
29
}
30
31
public
virtual
void
Apply
(
Player
player,
DrawData
? drawData =
null
)
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
}
65
66
public
virtual
Color
GetColor
(
Player
player,
Color
lightColor)
67
{
68
return
new
Color
(lightColor.
ToVector4
() * player.
hairColor
.
ToVector4
());
69
}
70
71
public
HairShaderData
UseColor
(
float
r,
float
g,
float
b)
72
{
73
return
UseColor
(
new
Vector3
(r, g, b));
74
}
75
76
public
HairShaderData
UseColor
(
Color
color)
77
{
78
return
UseColor
(color.
ToVector3
());
79
}
80
81
public
HairShaderData
UseColor
(
Vector3
color)
82
{
83
_uColor
= color;
84
return
this
;
85
}
86
87
public
HairShaderData
UseImage
(
string
path)
88
{
89
_uImage
=
Main
.
Assets
.Request<
Texture2D
>(path, (
AssetRequestMode
)1);
90
return
this
;
91
}
92
93
public
HairShaderData
UseOpacity
(
float
alpha)
94
{
95
_uOpacity
= alpha;
96
return
this
;
97
}
98
99
public
HairShaderData
UseSecondaryColor
(
float
r,
float
g,
float
b)
100
{
101
return
UseSecondaryColor
(
new
Vector3
(r, g, b));
102
}
103
104
public
HairShaderData
UseSecondaryColor
(
Color
color)
105
{
106
return
UseSecondaryColor
(color.
ToVector3
());
107
}
108
109
public
HairShaderData
UseSecondaryColor
(
Vector3
color)
110
{
111
_uSecondaryColor
= color;
112
return
this
;
113
}
114
115
public
HairShaderData
UseSaturation
(
float
saturation)
116
{
117
_uSaturation
= saturation;
118
return
this
;
119
}
120
121
public
HairShaderData
UseTargetPosition
(
Vector2
position)
122
{
123
_uTargetPosition
= position;
124
return
this
;
125
}
126
}
Microsoft.Xna.Framework.Graphics.Texture2D
Definition
Texture2D.cs:13
ReLogic.Content.Asset.Value
T Value
Definition
Asset.cs:26
ReLogic.Content.Asset
Definition
Asset.cs:8
Terraria.Entity.direction
int direction
Definition
Entity.cs:24
Terraria.Graphics.Shaders.HairShaderData.GetColor
virtual Color GetColor(Player player, Color lightColor)
Definition
HairShaderData.cs:66
Terraria.Graphics.Shaders.HairShaderData.UseColor
HairShaderData UseColor(Color color)
Definition
HairShaderData.cs:76
Terraria.Graphics.Shaders.HairShaderData._shaderDisabled
bool _shaderDisabled
Definition
HairShaderData.cs:20
Terraria.Graphics.Shaders.HairShaderData._uColor
Vector3 _uColor
Definition
HairShaderData.cs:10
Terraria.Graphics.Shaders.HairShaderData._uSaturation
float _uSaturation
Definition
HairShaderData.cs:14
Terraria.Graphics.Shaders.HairShaderData.UseSaturation
HairShaderData UseSaturation(float saturation)
Definition
HairShaderData.cs:115
Terraria.Graphics.Shaders.HairShaderData._uImage
Asset< Texture2D > _uImage
Definition
HairShaderData.cs:18
Terraria.Graphics.Shaders.HairShaderData.Apply
virtual void Apply(Player player, DrawData? drawData=null)
Definition
HairShaderData.cs:31
Terraria.Graphics.Shaders.HairShaderData._uSecondaryColor
Vector3 _uSecondaryColor
Definition
HairShaderData.cs:12
Terraria.Graphics.Shaders.HairShaderData.ShaderDisabled
bool ShaderDisabled
Definition
HairShaderData.cs:24
Terraria.Graphics.Shaders.HairShaderData.UseSecondaryColor
HairShaderData UseSecondaryColor(float r, float g, float b)
Definition
HairShaderData.cs:99
Terraria.Graphics.Shaders.HairShaderData.UseColor
HairShaderData UseColor(float r, float g, float b)
Definition
HairShaderData.cs:71
Terraria.Graphics.Shaders.HairShaderData.UseSecondaryColor
HairShaderData UseSecondaryColor(Vector3 color)
Definition
HairShaderData.cs:109
Terraria.Graphics.Shaders.HairShaderData.UseSecondaryColor
HairShaderData UseSecondaryColor(Color color)
Definition
HairShaderData.cs:104
Terraria.Graphics.Shaders.HairShaderData.HairShaderData
HairShaderData(Ref< Effect > shader, string passName)
Definition
HairShaderData.cs:26
Terraria.Graphics.Shaders.HairShaderData.UseImage
HairShaderData UseImage(string path)
Definition
HairShaderData.cs:87
Terraria.Graphics.Shaders.HairShaderData.UseOpacity
HairShaderData UseOpacity(float alpha)
Definition
HairShaderData.cs:93
Terraria.Graphics.Shaders.HairShaderData._uOpacity
float _uOpacity
Definition
HairShaderData.cs:16
Terraria.Graphics.Shaders.HairShaderData._uTargetPosition
Vector2 _uTargetPosition
Definition
HairShaderData.cs:22
Terraria.Graphics.Shaders.HairShaderData.UseColor
HairShaderData UseColor(Vector3 color)
Definition
HairShaderData.cs:81
Terraria.Graphics.Shaders.HairShaderData.UseTargetPosition
HairShaderData UseTargetPosition(Vector2 position)
Definition
HairShaderData.cs:121
Terraria.Graphics.Shaders.HairShaderData
Definition
HairShaderData.cs:9
Terraria.Graphics.Shaders.ShaderData.Apply
virtual void Apply()
Definition
ShaderData.cs:40
Terraria.Graphics.Shaders.ShaderData
Definition
ShaderData.cs:6
Terraria.Main.screenPosition
static Vector2 screenPosition
Definition
Main.cs:1715
Terraria.Main.Assets
static IAssetRepository Assets
Definition
Main.cs:209
Terraria.Main.GlobalTimeWrappedHourly
static float GlobalTimeWrappedHourly
Definition
Main.cs:405
Terraria.Main.graphics
static GraphicsDeviceManager graphics
Definition
Main.cs:972
Terraria.Main
Definition
Main.cs:79
Terraria.Player.hairColor
Color hairColor
Definition
Player.cs:2133
Terraria.Player
Definition
Player.cs:42
Terraria.Ref
Definition
Ref.cs:4
Microsoft.Xna.Framework.Graphics.VertexElementFormat.Vector3
@ Vector3
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Vector2
@ Vector2
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Color
@ Color
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Vector4
@ Vector4
Microsoft.Xna.Framework.Graphics
Definition
AlphaTestEffect.cs:1
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
ReLogic.Content.AssetRequestMode
AssetRequestMode
Definition
AssetRequestMode.cs:4
ReLogic.Content
Definition
IAssetReader.cs:5
Terraria.DataStructures
Definition
AEntitySource_OnHit.cs:1
Terraria.Graphics.Shaders
Definition
ArmorShaderData.cs:6
Microsoft.Xna.Framework.Color.ToVector4
Vector4 ToVector4()
Definition
Color.cs:481
Microsoft.Xna.Framework.Color.ToVector3
Vector3 ToVector3()
Definition
Color.cs:472
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Microsoft.Xna.Framework.Vector2.One
static Vector2 One
Definition
Vector2.cs:29
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
Microsoft.Xna.Framework.Vector3.One
static Vector3 One
Definition
Vector3.cs:46
Microsoft.Xna.Framework.Vector3
Definition
Vector3.cs:12
Microsoft.Xna.Framework.Vector4
Definition
Vector4.cs:12
Terraria.DataStructures.DrawData
Definition
DrawData.cs:7
source
Terraria.Graphics.Shaders
HairShaderData.cs
Generated by
1.10.0