Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MagicMissileDrawer.cs
Go to the documentation of this file.
1
using
System.Runtime.InteropServices
;
2
using
Microsoft.Xna.Framework
;
3
using
Terraria.Graphics.Shaders
;
4
5
namespace
Terraria.Graphics
;
6
7
[StructLayout(
LayoutKind
.Sequential, Size = 1)]
8
public
struct
MagicMissileDrawer
9
{
10
private
static
VertexStrip
_vertexStrip
=
new
VertexStrip
();
11
12
public
void
Draw
(
Projectile
proj)
13
{
14
MiscShaderData
miscShaderData =
GameShaders
.
Misc
[
"MagicMissile"
];
15
miscShaderData.
UseSaturation
(-2.8f);
16
miscShaderData.
UseOpacity
(2f);
17
miscShaderData.
Apply
();
18
_vertexStrip
.PrepareStripWithProceduralPadding(proj.
oldPos
, proj.
oldRot
,
StripColors
,
StripWidth
, -
Main
.
screenPosition
+ proj.
Size
/ 2f);
19
_vertexStrip
.DrawTrail();
20
Main
.
pixelShader
.CurrentTechnique.Passes[0].Apply();
21
}
22
23
private
Color
StripColors
(
float
progressOnStrip)
24
{
25
Color
result =
Color
.
Lerp
(
Color
.
White
,
Color
.
Violet
,
Utils
.
GetLerpValue
(0f, 0.7f, progressOnStrip, clamped:
true
)) * (1f -
Utils
.
GetLerpValue
(0f, 0.98f, progressOnStrip));
26
result.A /= 2;
27
return
result;
28
}
29
30
private
float
StripWidth
(
float
progressOnStrip)
31
{
32
return
MathHelper
.
Lerp
(26f, 32f,
Utils
.
GetLerpValue
(0f, 0.2f, progressOnStrip, clamped:
true
)) *
Utils
.
GetLerpValue
(0f, 0.07f, progressOnStrip, clamped:
true
);
33
}
34
}
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.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
System.Runtime.InteropServices.LayoutKind
LayoutKind
Definition
LayoutKind.cs:4
System.Runtime.InteropServices
Definition
SequenceMarshal.cs:4
Terraria.Graphics.Shaders
Definition
ArmorShaderData.cs:6
Terraria.Graphics
Definition
CameraInfo.cs:3
Microsoft.Xna.Framework.Color.Lerp
static Color Lerp(Color value1, Color value2, float amount)
Definition
Color.cs:491
Microsoft.Xna.Framework.Color.White
static Color White
Definition
Color.cs:350
Microsoft.Xna.Framework.Color.Violet
static Color Violet
Definition
Color.cs:346
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Terraria.Graphics.MagicMissileDrawer.StripColors
Color StripColors(float progressOnStrip)
Definition
MagicMissileDrawer.cs:23
Terraria.Graphics.MagicMissileDrawer.StripWidth
float StripWidth(float progressOnStrip)
Definition
MagicMissileDrawer.cs:30
Terraria.Graphics.MagicMissileDrawer.Draw
void Draw(Projectile proj)
Definition
MagicMissileDrawer.cs:12
Terraria.Graphics.MagicMissileDrawer._vertexStrip
static VertexStrip _vertexStrip
Definition
MagicMissileDrawer.cs:10
Terraria.Graphics.MagicMissileDrawer
Definition
MagicMissileDrawer.cs:9
source
Terraria.Graphics
MagicMissileDrawer.cs
Generated by
1.10.0