Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SlimeRainShader.cs
Go to the documentation of this file.
1
using
System
;
2
using
Microsoft.Xna.Framework
;
3
using
ReLogic.Peripherals.RGB
;
4
5
namespace
Terraria.GameContent.RGB
;
6
7
public
class
SlimeRainShader
:
ChromaShader
8
{
9
private
static
readonly
Vector4
[]
_colors
=
new
Vector4
[3]
10
{
11
Color
.
Blue
.ToVector4(),
12
Color
.
Green
.ToVector4(),
13
Color
.
Purple
.ToVector4()
14
};
15
16
[RgbProcessor(
/*Could not decode attribute arguments.*/
)]
17
private
void
ProcessHighDetail
(
RgbDevice
device,
Fragment
fragment,
EffectDetailLevel
quality,
float
time)
18
{
19
Vector4
vector =
new
Vector4
(0f, 0f, 0f, 0.75f);
20
for
(
int
i = 0; i < fragment.
Count
; i++)
21
{
22
Point
gridPositionOfIndex = fragment.
GetGridPositionOfIndex
(i);
23
Vector2
canvasPositionOfIndex = fragment.
GetCanvasPositionOfIndex
(i);
24
float
num = (
NoiseHelper
.
GetStaticNoise
(gridPositionOfIndex.
X
) * 7f + time * 0.4f) % 7f - canvasPositionOfIndex.
Y
;
25
Vector4
vector2 = vector;
26
if
(num > 0f)
27
{
28
float
amount =
Math
.
Max
(0f, 1.2f - num);
29
if
(num < 0.4f)
30
{
31
amount = num / 0.4f;
32
}
33
int
num2 = (gridPositionOfIndex.X % _colors.Length +
_colors
.Length) %
_colors
.Length;
34
vector2 =
Vector4
.
Lerp
(vector2,
_colors
[num2], amount);
35
}
36
fragment.
SetColor
(i, vector2);
37
}
38
}
39
}
ReLogic.Peripherals.RGB.ChromaShader
Definition
ChromaShader.cs:8
ReLogic.Peripherals.RGB.Fragment.Count
readonly int Count
Definition
Fragment.cs:14
ReLogic.Peripherals.RGB.Fragment.GetGridPositionOfIndex
Point GetGridPositionOfIndex(int index)
Definition
Fragment.cs:81
ReLogic.Peripherals.RGB.Fragment.SetColor
void SetColor(int index, Vector4 color)
Definition
Fragment.cs:97
ReLogic.Peripherals.RGB.Fragment.GetCanvasPositionOfIndex
Vector2 GetCanvasPositionOfIndex(int index)
Definition
Fragment.cs:75
ReLogic.Peripherals.RGB.Fragment
Definition
Fragment.cs:7
ReLogic.Peripherals.RGB.RgbDevice
Definition
RgbDevice.cs:7
System.Math.Max
static byte Max(byte val1, byte val2)
Definition
Math.cs:738
System.Math
Definition
Math.cs:13
Terraria.GameContent.RGB.NoiseHelper.GetStaticNoise
static float GetStaticNoise(int index)
Definition
NoiseHelper.cs:37
Terraria.GameContent.RGB.NoiseHelper
Definition
NoiseHelper.cs:8
Terraria.GameContent.RGB.SlimeRainShader._colors
static readonly Vector4[] _colors
Definition
SlimeRainShader.cs:9
Terraria.GameContent.RGB.SlimeRainShader.ProcessHighDetail
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition
SlimeRainShader.cs:17
Terraria.GameContent.RGB.SlimeRainShader
Definition
SlimeRainShader.cs:8
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
ReLogic.Peripherals.RGB.EffectDetailLevel
EffectDetailLevel
Definition
EffectDetailLevel.cs:4
ReLogic.Peripherals.RGB
Definition
CorsairAccessMode.cs:1
System
Definition
BlockingCollection.cs:8
Terraria.GameContent.RGB
Definition
BlizzardShader.cs:4
Microsoft.Xna.Framework.Color.Green
static Color Green
Definition
Color.cs:180
Microsoft.Xna.Framework.Color.Purple
static Color Purple
Definition
Color.cs:302
Microsoft.Xna.Framework.Color.Blue
static Color Blue
Definition
Color.cs:96
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Microsoft.Xna.Framework.Point.X
int X
Definition
Point.cs:14
Microsoft.Xna.Framework.Point
Definition
Point.cs:12
Microsoft.Xna.Framework.Vector2.Y
float Y
Definition
Vector2.cs:17
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
Microsoft.Xna.Framework.Vector4.Lerp
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition
Vector4.cs:277
Microsoft.Xna.Framework.Vector4
Definition
Vector4.cs:12
source
Terraria.GameContent.RGB
SlimeRainShader.cs
Generated by
1.10.0