Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UndergroundMushroomShader.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
UndergroundMushroomShader
:
ChromaShader
8
{
9
private
readonly
Vector4
_baseColor
=
new
Color
(10, 10, 10).
ToVector4
();
10
11
private
readonly
Vector4
_edgeGlowColor
=
new
Color
(0, 0, 255).
ToVector4
();
12
13
private
readonly
Vector4
_sporeColor
=
new
Color
(255, 230, 150).
ToVector4
();
14
15
[RgbProcessor(
/*Could not decode attribute arguments.*/
)]
16
private
void
ProcessLowDetail
(
RgbDevice
device,
Fragment
fragment,
EffectDetailLevel
quality,
float
time)
17
{
18
for
(
int
i = 0; i < fragment.
Count
; i++)
19
{
20
Vector2
canvasPositionOfIndex = fragment.
GetCanvasPositionOfIndex
(i);
21
Vector4
vector =
Vector4
.
Lerp
(
_edgeGlowColor
,
_sporeColor
, (
float
)
Math
.
Sin
(time * 0.5f + canvasPositionOfIndex.
X
) * 0.5f + 0.5f);
22
fragment.
SetColor
(i, vector);
23
}
24
}
25
26
[RgbProcessor(
/*Could not decode attribute arguments.*/
)]
27
private
void
ProcessHighDetail
(
RgbDevice
device,
Fragment
fragment,
EffectDetailLevel
quality,
float
time)
28
{
29
for
(
int
i = 0; i < fragment.
Count
; i++)
30
{
31
Point
gridPositionOfIndex = fragment.
GetGridPositionOfIndex
(i);
32
Vector2
canvasPositionOfIndex = fragment.
GetCanvasPositionOfIndex
(i);
33
Vector4
value
=
_baseColor
;
34
float
num = ((
NoiseHelper
.
GetStaticNoise
(gridPositionOfIndex.
X
) * 10f + time * 0.2f) % 10f - (1f - canvasPositionOfIndex.
Y
)) * 2f;
35
if
(num > 0f)
36
{
37
float
amount =
Math
.
Max
(0f, 1.5f - num);
38
if
(num < 0.5f)
39
{
40
amount = num * 2f;
41
}
42
value
=
Vector4
.
Lerp
(
value
,
_sporeColor
, amount);
43
}
44
float
staticNoise =
NoiseHelper
.
GetStaticNoise
(canvasPositionOfIndex * 0.3f +
new
Vector2
(0f, time * 0.1f));
45
staticNoise =
Math
.
Max
(0f, 1f - staticNoise * (1f + (1f - canvasPositionOfIndex.
Y
) * 4f));
46
staticNoise *=
Math
.
Max
(0f, (canvasPositionOfIndex.
Y
- 0.3f) / 0.7f);
47
value
=
Vector4
.
Lerp
(
value
,
_edgeGlowColor
, staticNoise);
48
fragment.
SetColor
(i,
value
);
49
}
50
}
51
}
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.Sin
static double Sin(double a)
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.UndergroundMushroomShader._sporeColor
readonly Vector4 _sporeColor
Definition
UndergroundMushroomShader.cs:13
Terraria.GameContent.RGB.UndergroundMushroomShader._baseColor
readonly Vector4 _baseColor
Definition
UndergroundMushroomShader.cs:9
Terraria.GameContent.RGB.UndergroundMushroomShader.ProcessHighDetail
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition
UndergroundMushroomShader.cs:27
Terraria.GameContent.RGB.UndergroundMushroomShader._edgeGlowColor
readonly Vector4 _edgeGlowColor
Definition
UndergroundMushroomShader.cs:11
Terraria.GameContent.RGB.UndergroundMushroomShader.ProcessLowDetail
void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition
UndergroundMushroomShader.cs:16
Terraria.GameContent.RGB.UndergroundMushroomShader
Definition
UndergroundMushroomShader.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.ExceptionArgument.value
@ value
System
Definition
BlockingCollection.cs:8
Terraria.GameContent.RGB
Definition
BlizzardShader.cs:4
Microsoft.Xna.Framework.Color.ToVector4
Vector4 ToVector4()
Definition
Color.cs:481
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.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.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
UndergroundMushroomShader.cs
Generated by
1.10.0