Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DrowningShader.cs
Go to the documentation of this file.
1
using
Microsoft.Xna.Framework
;
2
using
ReLogic.Peripherals.RGB
;
3
4
namespace
Terraria.GameContent.RGB
;
5
6
public
class
DrowningShader
:
ChromaShader
7
{
8
private
float
_breath
= 1f;
9
10
public
override
void
Update
(
float
elapsedTime)
11
{
12
Player
player =
Main
.
player
[
Main
.
myPlayer
];
13
_breath
= (float)(player.
breath
* player.
breathCDMax
- player.
breathCD
) / (float)(player.
breathMax
* player.
breathCDMax
);
14
}
15
16
[RgbProcessor(
/*Could not decode attribute arguments.*/
)]
17
private
void
ProcessLowDetail
(
RgbDevice
device,
Fragment
fragment,
EffectDetailLevel
quality,
float
time)
18
{
19
for
(
int
i = 0; i < fragment.
Count
; i++)
20
{
21
fragment.
GetCanvasPositionOfIndex
(i);
22
Vector4
vector =
new
Vector4
(0f, 0f, 1f, 1f -
_breath
);
23
fragment.
SetColor
(i, vector);
24
}
25
}
26
27
[RgbProcessor(
/*Could not decode attribute arguments.*/
)]
28
private
void
ProcessHighDetail
(
RgbDevice
device,
Fragment
fragment,
EffectDetailLevel
quality,
float
time)
29
{
30
float
num =
_breath
* 1.2f - 0.1f;
31
for
(
int
i = 0; i < fragment.
Count
; i++)
32
{
33
Vector2
canvasPositionOfIndex = fragment.
GetCanvasPositionOfIndex
(i);
34
Vector4
vector =
Vector4
.
Zero
;
35
if
(canvasPositionOfIndex.
Y
> num)
36
{
37
vector =
new
Vector4
(0f, 0f, 1f,
MathHelper
.
Clamp
((canvasPositionOfIndex.
Y
- num) * 5f, 0f, 1f));
38
}
39
fragment.
SetColor
(i, vector);
40
}
41
}
42
}
Microsoft.Xna.Framework.MathHelper.Clamp
static float Clamp(float value, float min, float max)
Definition
MathHelper.cs:46
Microsoft.Xna.Framework.MathHelper
Definition
MathHelper.cs:6
ReLogic.Peripherals.RGB.ChromaShader
Definition
ChromaShader.cs:8
ReLogic.Peripherals.RGB.Fragment.Count
readonly int Count
Definition
Fragment.cs:14
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
Terraria.GameContent.RGB.DrowningShader.Update
override void Update(float elapsedTime)
Definition
DrowningShader.cs:10
Terraria.GameContent.RGB.DrowningShader.ProcessHighDetail
void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition
DrowningShader.cs:28
Terraria.GameContent.RGB.DrowningShader.ProcessLowDetail
void ProcessLowDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
Definition
DrowningShader.cs:17
Terraria.GameContent.RGB.DrowningShader._breath
float _breath
Definition
DrowningShader.cs:8
Terraria.GameContent.RGB.DrowningShader
Definition
DrowningShader.cs:7
Terraria.Main.myPlayer
static int myPlayer
Definition
Main.cs:1801
Terraria.Main.player
static Player[] player
Definition
Main.cs:1803
Terraria.Main
Definition
Main.cs:79
Terraria.Player.breathCDMax
int breathCDMax
Definition
Player.cs:3331
Terraria.Player.breathCD
int breathCD
Definition
Player.cs:1201
Terraria.Player.breathMax
int breathMax
Definition
Player.cs:1203
Terraria.Player.breath
int breath
Definition
Player.cs:1205
Terraria.Player
Definition
Player.cs:42
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
ReLogic.Peripherals.RGB.EffectDetailLevel
EffectDetailLevel
Definition
EffectDetailLevel.cs:4
ReLogic.Peripherals.RGB
Definition
CorsairAccessMode.cs:1
Terraria.GameContent.RGB
Definition
BlizzardShader.cs:4
Microsoft.Xna.Framework.Vector2.Y
float Y
Definition
Vector2.cs:17
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
Microsoft.Xna.Framework.Vector4.Zero
static Vector4 Zero
Definition
Vector4.cs:37
Microsoft.Xna.Framework.Vector4
Definition
Vector4.cs:12
source
Terraria.GameContent.RGB
DrowningShader.cs
Generated by
1.10.0