Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PrettySparkleParticle.cs
Go to the documentation of this file.
1
using
System
;
2
using
Microsoft.Xna.Framework
;
3
using
Microsoft.Xna.Framework.Graphics
;
4
using
Terraria.GameContent
;
5
6
namespace
Terraria.Graphics.Renderers
;
7
8
public
class
PrettySparkleParticle
:
ABasicParticle
9
{
10
public
float
FadeInNormalizedTime
= 0.05f;
11
12
public
float
FadeOutNormalizedTime
= 0.9f;
13
14
public
float
TimeToLive
= 60f;
15
16
public
Color
ColorTint
;
17
18
public
float
Opacity
;
19
20
public
float
AdditiveAmount
= 1f;
21
22
public
float
FadeInEnd
= 20f;
23
24
public
float
FadeOutStart
= 30f;
25
26
public
float
FadeOutEnd
= 45f;
27
28
public
bool
DrawHorizontalAxis
=
true
;
29
30
public
bool
DrawVerticalAxis
=
true
;
31
32
private
float
_timeSinceSpawn
;
33
34
public
override
void
FetchFromPool
()
35
{
36
base.FetchFromPool();
37
ColorTint
=
Color
.
Transparent
;
38
_timeSinceSpawn
= 0f;
39
Opacity
= 0f;
40
FadeInNormalizedTime
= 0.05f;
41
FadeOutNormalizedTime
= 0.9f;
42
TimeToLive
= 60f;
43
AdditiveAmount
= 1f;
44
FadeInEnd
= 20f;
45
FadeOutStart
= 30f;
46
FadeOutEnd
= 45f;
47
DrawVerticalAxis
= (
DrawHorizontalAxis
=
true
);
48
}
49
50
public
override
void
Update
(ref
ParticleRendererSettings
settings)
51
{
52
base.Update(ref settings);
53
_timeSinceSpawn
+= 1f;
54
Opacity
=
Utils
.
GetLerpValue
(0f,
FadeInNormalizedTime
,
_timeSinceSpawn
/
TimeToLive
, clamped:
true
) *
Utils
.
GetLerpValue
(1f,
FadeOutNormalizedTime
,
_timeSinceSpawn
/
TimeToLive
, clamped:
true
);
55
if
(
_timeSinceSpawn
>=
TimeToLive
)
56
{
57
base.ShouldBeRemovedFromRenderer =
true
;
58
}
59
}
60
61
public
override
void
Draw
(ref
ParticleRendererSettings
settings,
SpriteBatch
spritebatch)
62
{
63
Color
color = Color.White *
Opacity
* 0.9f;
64
color.A /= 2;
65
Texture2D
value
=
TextureAssets
.
Extra
[98].Value;
66
Color
color2 =
ColorTint
*
Opacity
* 0.5f;
67
color2.A = (byte)((
float
)(int)color2.
A
* (1f -
AdditiveAmount
));
68
Vector2
origin =
value
.Size() / 2f;
69
Color
color3 = color * 0.5f;
70
float
t =
_timeSinceSpawn
/
TimeToLive
* 60f;
71
float
num =
Utils
.
GetLerpValue
(0f,
FadeInEnd
, t, clamped:
true
) *
Utils
.
GetLerpValue
(
FadeOutEnd
,
FadeOutStart
, t, clamped:
true
);
72
Vector2
vector =
new
Vector2
(0.3f, 2f) * num *
Scale
;
73
Vector2
vector2 =
new
Vector2
(0.3f, 1f) * num *
Scale
;
74
color2 *= num;
75
color3 *= num;
76
Vector2
position = settings.AnchorPosition +
LocalPosition
;
77
SpriteEffects
effects =
SpriteEffects
.None;
78
if
(
DrawHorizontalAxis
)
79
{
80
spritebatch.
Draw
(
value
, position,
null
, color2, (
float
)
Math
.
PI
/ 2f +
Rotation
, origin, vector, effects, 0f);
81
}
82
if
(
DrawVerticalAxis
)
83
{
84
spritebatch.
Draw
(
value
, position,
null
, color2, 0f +
Rotation
, origin, vector2, effects, 0f);
85
}
86
if
(
DrawHorizontalAxis
)
87
{
88
spritebatch.
Draw
(
value
, position,
null
, color3, (
float
)
Math
.
PI
/ 2f +
Rotation
, origin, vector * 0.6f, effects, 0f);
89
}
90
if
(
DrawVerticalAxis
)
91
{
92
spritebatch.
Draw
(
value
, position,
null
, color3, 0f +
Rotation
, origin, vector2 * 0.6f, effects, 0f);
93
}
94
}
95
}
Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw
void Draw(Texture2D texture, Vector2 position, Color color)
Definition
SpriteBatch.cs:397
Microsoft.Xna.Framework.Graphics.SpriteBatch
Definition
SpriteBatch.cs:8
Microsoft.Xna.Framework.Graphics.Texture2D
Definition
Texture2D.cs:13
System.Math.PI
const double PI
Definition
Math.cs:16
System.Math
Definition
Math.cs:13
Terraria.GameContent.TextureAssets.Extra
static Asset< Texture2D >[] Extra
Definition
TextureAssets.cs:368
Terraria.GameContent.TextureAssets
Definition
TextureAssets.cs:8
Terraria.Graphics.Renderers.ABasicParticle.LocalPosition
Vector2 LocalPosition
Definition
ABasicParticle.cs:13
Terraria.Graphics.Renderers.ABasicParticle.Rotation
float Rotation
Definition
ABasicParticle.cs:21
Terraria.Graphics.Renderers.ABasicParticle.Scale
Vector2 Scale
Definition
ABasicParticle.cs:27
Terraria.Graphics.Renderers.ABasicParticle
Definition
ABasicParticle.cs:8
Terraria.Graphics.Renderers.PrettySparkleParticle.DrawHorizontalAxis
bool DrawHorizontalAxis
Definition
PrettySparkleParticle.cs:28
Terraria.Graphics.Renderers.PrettySparkleParticle.FadeInEnd
float FadeInEnd
Definition
PrettySparkleParticle.cs:22
Terraria.Graphics.Renderers.PrettySparkleParticle._timeSinceSpawn
float _timeSinceSpawn
Definition
PrettySparkleParticle.cs:32
Terraria.Graphics.Renderers.PrettySparkleParticle.TimeToLive
float TimeToLive
Definition
PrettySparkleParticle.cs:14
Terraria.Graphics.Renderers.PrettySparkleParticle.FadeOutStart
float FadeOutStart
Definition
PrettySparkleParticle.cs:24
Terraria.Graphics.Renderers.PrettySparkleParticle.Opacity
float Opacity
Definition
PrettySparkleParticle.cs:18
Terraria.Graphics.Renderers.PrettySparkleParticle.FadeOutNormalizedTime
float FadeOutNormalizedTime
Definition
PrettySparkleParticle.cs:12
Terraria.Graphics.Renderers.PrettySparkleParticle.ColorTint
Color ColorTint
Definition
PrettySparkleParticle.cs:16
Terraria.Graphics.Renderers.PrettySparkleParticle.FadeInNormalizedTime
float FadeInNormalizedTime
Definition
PrettySparkleParticle.cs:10
Terraria.Graphics.Renderers.PrettySparkleParticle.FadeOutEnd
float FadeOutEnd
Definition
PrettySparkleParticle.cs:26
Terraria.Graphics.Renderers.PrettySparkleParticle.AdditiveAmount
float AdditiveAmount
Definition
PrettySparkleParticle.cs:20
Terraria.Graphics.Renderers.PrettySparkleParticle.FetchFromPool
override void FetchFromPool()
Definition
PrettySparkleParticle.cs:34
Terraria.Graphics.Renderers.PrettySparkleParticle.Draw
override void Draw(ref ParticleRendererSettings settings, SpriteBatch spritebatch)
Definition
PrettySparkleParticle.cs:61
Terraria.Graphics.Renderers.PrettySparkleParticle.DrawVerticalAxis
bool DrawVerticalAxis
Definition
PrettySparkleParticle.cs:30
Terraria.Graphics.Renderers.PrettySparkleParticle.Update
override void Update(ref ParticleRendererSettings settings)
Definition
PrettySparkleParticle.cs:50
Terraria.Graphics.Renderers.PrettySparkleParticle
Definition
PrettySparkleParticle.cs:9
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.Graphics.SurfaceFormat.Vector2
@ Vector2
Microsoft.Xna.Framework.Graphics.SpriteEffects
SpriteEffects
Definition
SpriteEffects.cs:7
Microsoft.Xna.Framework.Graphics
Definition
AlphaTestEffect.cs:1
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
System.ExceptionArgument.value
@ value
System
Definition
BlockingCollection.cs:8
Terraria.GameContent
Definition
AchievementsHelper.cs:1
Terraria.Graphics.Renderers
Definition
ABasicParticle.cs:5
Microsoft.Xna.Framework.Color.A
byte A
Definition
Color.cs:52
Microsoft.Xna.Framework.Color.Transparent
static Color Transparent
Definition
Color.cs:76
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
Terraria.Graphics.Renderers.ParticleRendererSettings
Definition
ParticleRendererSettings.cs:6
source
Terraria.Graphics.Renderers
PrettySparkleParticle.cs
Generated by
1.10.0