Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ReflectiveArmorShaderData.cs
Go to the documentation of this file.
1
using
Microsoft.Xna.Framework
;
2
using
Microsoft.Xna.Framework.Graphics
;
3
using
Terraria.DataStructures
;
4
using
Terraria.Graphics.Shaders
;
5
6
namespace
Terraria.GameContent.Dyes
;
7
8
public
class
ReflectiveArmorShaderData
:
ArmorShaderData
9
{
10
public
ReflectiveArmorShaderData
(
Ref<Effect>
shader,
string
passName)
11
: base(shader, passName)
12
{
13
}
14
15
public
override
void
Apply
(
Entity
entity,
DrawData
? drawData)
16
{
17
if
(entity ==
null
)
18
{
19
base.Shader.Parameters[
"uLightSource"
].SetValue(
Vector3
.
Zero
);
20
}
21
else
22
{
23
float
num = 0f;
24
if
(drawData.HasValue)
25
{
26
num = drawData.Value.
rotation
;
27
}
28
Vector2
position = entity.
position
;
29
float
num2 = entity.
width
;
30
float
num3 = entity.
height
;
31
Vector2
vector = position +
new
Vector2
(num2, num3) * 0.1f;
32
num2 *= 0.8f;
33
num3 *= 0.8f;
34
Vector3
subLight =
Lighting
.
GetSubLight
(vector +
new
Vector2
(num2 * 0.5f, 0f));
35
Vector3
subLight2 =
Lighting
.
GetSubLight
(vector +
new
Vector2
(0f, num3 * 0.5f));
36
Vector3
subLight3 =
Lighting
.
GetSubLight
(vector +
new
Vector2
(num2, num3 * 0.5f));
37
Vector3
subLight4 =
Lighting
.
GetSubLight
(vector +
new
Vector2
(num2 * 0.5f, num3));
38
float
num4 = subLight.X + subLight.Y + subLight.
Z
;
39
float
num5 = subLight2.X + subLight2.Y + subLight2.
Z
;
40
float
num6 = subLight3.X + subLight3.Y + subLight3.
Z
;
41
float
num7 = subLight4.X + subLight4.Y + subLight4.
Z
;
42
Vector2
spinningpoint =
new
Vector2
(num6 - num5, num7 - num4);
43
float
num8 = spinningpoint.
Length
();
44
if
(num8 > 1f)
45
{
46
num8 = 1f;
47
spinningpoint /= num8;
48
}
49
if
(entity.
direction
== -1)
50
{
51
spinningpoint.X *= -1f;
52
}
53
spinningpoint = spinningpoint.RotatedBy(0f - num);
54
Vector3
value =
new
Vector3
(spinningpoint, 1f - (spinningpoint.
X
* spinningpoint.
X
+ spinningpoint.
Y
* spinningpoint.
Y
));
55
value.X *= 2f;
56
value.Y -= 0.15f;
57
value.Y *= 2f;
58
value.Normalize();
59
value.Z *= 0.6f;
60
base.Shader.Parameters[
"uLightSource"
].SetValue(value);
61
}
62
base.Apply(entity, drawData);
63
}
64
}
Terraria.Entity.direction
int direction
Definition
Entity.cs:24
Terraria.Entity.position
Vector2 position
Definition
Entity.cs:14
Terraria.Entity.width
int width
Definition
Entity.cs:26
Terraria.Entity.height
int height
Definition
Entity.cs:28
Terraria.Entity
Definition
Entity.cs:7
Terraria.GameContent.Dyes.ReflectiveArmorShaderData.ReflectiveArmorShaderData
ReflectiveArmorShaderData(Ref< Effect > shader, string passName)
Definition
ReflectiveArmorShaderData.cs:10
Terraria.GameContent.Dyes.ReflectiveArmorShaderData.Apply
override void Apply(Entity entity, DrawData? drawData)
Definition
ReflectiveArmorShaderData.cs:15
Terraria.GameContent.Dyes.ReflectiveArmorShaderData
Definition
ReflectiveArmorShaderData.cs:9
Terraria.Graphics.Shaders.ArmorShaderData
Definition
ArmorShaderData.cs:9
Terraria.Lighting.GetSubLight
static Vector3 GetSubLight(Vector2 position)
Definition
Lighting.cs:122
Terraria.Lighting
Definition
Lighting.cs:11
Terraria.Ref
Definition
Ref.cs:4
Microsoft.Xna.Framework.Graphics.VertexElementFormat.Vector3
@ Vector3
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Vector2
@ Vector2
Microsoft.Xna.Framework.Graphics
Definition
AlphaTestEffect.cs:1
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
Terraria.DataStructures
Definition
AEntitySource_OnHit.cs:1
Terraria.GameContent.Dyes
Definition
LegacyHairShaderData.cs:4
Terraria.Graphics.Shaders
Definition
ArmorShaderData.cs:6
Microsoft.Xna.Framework.Vector2.Length
float Length()
Definition
Vector2.cs:80
Microsoft.Xna.Framework.Vector2.X
float X
Definition
Vector2.cs:14
Microsoft.Xna.Framework.Vector2.Y
float Y
Definition
Vector2.cs:17
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
Microsoft.Xna.Framework.Vector3.Zero
static Vector3 Zero
Definition
Vector3.cs:44
Microsoft.Xna.Framework.Vector3.Z
float Z
Definition
Vector3.cs:20
Microsoft.Xna.Framework.Vector3
Definition
Vector3.cs:12
Terraria.DataStructures.DrawData.rotation
float rotation
Definition
DrawData.cs:18
Terraria.DataStructures.DrawData
Definition
DrawData.cs:7
source
Terraria.GameContent.Dyes
ReflectiveArmorShaderData.cs
Generated by
1.10.0