Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FlameLashDrawer.cs
Go to the documentation of this file.
1
using
Microsoft.Xna.Framework
;
2
using
Terraria.Graphics.Shaders
;
3
4
namespace
Terraria.Graphics
;
5
6
public
struct
FlameLashDrawer
7
{
8
private
static
VertexStrip
_vertexStrip
=
new
VertexStrip
();
9
10
private
float
transitToDark
;
11
12
public
void
Draw
(
Projectile
proj)
13
{
14
transitToDark
=
Utils
.
GetLerpValue
(0f, 6f, proj.
localAI
[0], clamped:
true
);
15
MiscShaderData
miscShaderData =
GameShaders
.
Misc
[
"FlameLash"
];
16
miscShaderData.
UseSaturation
(-2f);
17
miscShaderData.
UseOpacity
(
MathHelper
.
Lerp
(4f, 8f,
transitToDark
));
18
miscShaderData.
Apply
();
19
_vertexStrip
.PrepareStripWithProceduralPadding(proj.
oldPos
, proj.
oldRot
,
StripColors
,
StripWidth
, -
Main
.
screenPosition
+ proj.
Size
/ 2f);
20
_vertexStrip
.DrawTrail();
21
Main
.
pixelShader
.CurrentTechnique.Passes[0].Apply();
22
}
23
24
private
Color
StripColors
(
float
progressOnStrip)
25
{
26
float
lerpValue =
Utils
.
GetLerpValue
(0f - 0.1f *
transitToDark
, 0.7f - 0.2f *
transitToDark
, progressOnStrip, clamped:
true
);
27
Color
result =
Color
.
Lerp
(
Color
.
Lerp
(
Color
.
White
,
Color
.
Orange
,
transitToDark
* 0.5f),
Color
.
Red
, lerpValue) * (1f -
Utils
.
GetLerpValue
(0f, 0.98f, progressOnStrip));
28
result.A /= 8;
29
return
result;
30
}
31
32
private
float
StripWidth
(
float
progressOnStrip)
33
{
34
float
lerpValue =
Utils
.
GetLerpValue
(0f, 0.06f +
transitToDark
* 0.01f, progressOnStrip, clamped:
true
);
35
lerpValue = 1f - (1f - lerpValue) * (1f - lerpValue);
36
return
MathHelper
.
Lerp
(24f +
transitToDark
* 16f, 8f,
Utils
.
GetLerpValue
(0f, 1f, progressOnStrip, clamped:
true
)) * lerpValue;
37
}
38
}
Microsoft.Xna.Framework.MathHelper.Lerp
static float Lerp(float value1, float value2, float amount)
Definition
MathHelper.cs:53
Microsoft.Xna.Framework.MathHelper
Definition
MathHelper.cs:6
Terraria.Entity.Size
Vector2 Size
Definition
Entity.cs:151
Terraria.Graphics.Shaders.GameShaders.Misc
static Dictionary< string, MiscShaderData > Misc
Definition
GameShaders.cs:11
Terraria.Graphics.Shaders.GameShaders
Definition
GameShaders.cs:6
Terraria.Graphics.Shaders.MiscShaderData.Apply
virtual void Apply(DrawData? drawData=null)
Definition
MiscShaderData.cs:36
Terraria.Graphics.Shaders.MiscShaderData.UseSaturation
MiscShaderData UseSaturation(float saturation)
Definition
MiscShaderData.cs:160
Terraria.Graphics.Shaders.MiscShaderData.UseOpacity
MiscShaderData UseOpacity(float alpha)
Definition
MiscShaderData.cs:132
Terraria.Graphics.Shaders.MiscShaderData
Definition
MiscShaderData.cs:10
Terraria.Graphics.VertexStrip
Definition
VertexStrip.cs:9
Terraria.Main.pixelShader
static Effect pixelShader
Definition
Main.cs:2764
Terraria.Main.screenPosition
static Vector2 screenPosition
Definition
Main.cs:1715
Terraria.Main
Definition
Main.cs:79
Terraria.Projectile.oldRot
float[] oldRot
Definition
Projectile.cs:170
Terraria.Projectile.localAI
float[] localAI
Definition
Projectile.cs:120
Terraria.Projectile.oldPos
Vector2[] oldPos
Definition
Projectile.cs:168
Terraria.Projectile
Definition
Projectile.cs:31
Terraria.Utils.GetLerpValue
static float GetLerpValue(float from, float to, float t, bool clamped=false)
Definition
Utils.cs:203
Terraria.Utils
Definition
Utils.cs:29
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
Terraria.Graphics.Shaders
Definition
ArmorShaderData.cs:6
Terraria.Graphics
Definition
CameraInfo.cs:3
Microsoft.Xna.Framework.Color.Orange
static Color Orange
Definition
Color.cs:276
Microsoft.Xna.Framework.Color.Lerp
static Color Lerp(Color value1, Color value2, float amount)
Definition
Color.cs:491
Microsoft.Xna.Framework.Color.Red
static Color Red
Definition
Color.cs:304
Microsoft.Xna.Framework.Color.White
static Color White
Definition
Color.cs:350
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Terraria.Graphics.FlameLashDrawer.StripColors
Color StripColors(float progressOnStrip)
Definition
FlameLashDrawer.cs:24
Terraria.Graphics.FlameLashDrawer._vertexStrip
static VertexStrip _vertexStrip
Definition
FlameLashDrawer.cs:8
Terraria.Graphics.FlameLashDrawer.StripWidth
float StripWidth(float progressOnStrip)
Definition
FlameLashDrawer.cs:32
Terraria.Graphics.FlameLashDrawer.transitToDark
float transitToDark
Definition
FlameLashDrawer.cs:10
Terraria.Graphics.FlameLashDrawer.Draw
void Draw(Projectile proj)
Definition
FlameLashDrawer.cs:12
Terraria.Graphics.FlameLashDrawer
Definition
FlameLashDrawer.cs:7
source
Terraria.Graphics
FlameLashDrawer.cs
Generated by
1.10.0