Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ArmorShaderDataSet.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
Terraria.DataStructures
;
3
4
namespace
Terraria.Graphics.Shaders
;
5
6
public
class
ArmorShaderDataSet
7
{
8
protected
List<ArmorShaderData>
_shaderData
=
new
List<ArmorShaderData>
();
9
10
protected
Dictionary<int, int>
_shaderLookupDictionary
=
new
Dictionary<int, int>
();
11
12
protected
int
_shaderDataCount
;
13
14
public
T
BindShader<T>
(
int
itemId, T
shaderData
)
where
T :
ArmorShaderData
15
{
16
_shaderLookupDictionary
[itemId] = ++
_shaderDataCount
;
17
_shaderData
.
Add
(
shaderData
);
18
return
shaderData
;
19
}
20
21
public
void
Apply
(
int
shaderId
,
Entity
entity,
DrawData
?
drawData
=
null
)
22
{
23
if
(
shaderId
>= 1 &&
shaderId
<=
_shaderDataCount
)
24
{
25
_shaderData
[
shaderId
- 1].Apply(entity,
drawData
);
26
}
27
else
28
{
29
Main
.
pixelShader
.CurrentTechnique.Passes[0].Apply();
30
}
31
}
32
33
public
void
ApplySecondary
(
int
shaderId
,
Entity
entity,
DrawData
?
drawData
=
null
)
34
{
35
if
(
shaderId
>= 1 &&
shaderId
<=
_shaderDataCount
)
36
{
37
_shaderData
[
shaderId
- 1].GetSecondaryShader(entity).Apply(entity,
drawData
);
38
}
39
else
40
{
41
Main
.
pixelShader
.CurrentTechnique.Passes[0].Apply();
42
}
43
}
44
45
public
ArmorShaderData
GetShaderFromItemId
(
int
type)
46
{
47
if
(
_shaderLookupDictionary
.
ContainsKey
(type))
48
{
49
return
_shaderData
[
_shaderLookupDictionary
[type] - 1];
50
}
51
return
null
;
52
}
53
54
public
int
GetShaderIdFromItemId
(
int
type)
55
{
56
if
(
_shaderLookupDictionary
.
ContainsKey
(type))
57
{
58
return
_shaderLookupDictionary
[type];
59
}
60
return
0;
61
}
62
63
public
ArmorShaderData
GetSecondaryShader
(
int
id
,
Player
player)
64
{
65
if
(
id
!= 0 &&
id
<=
_shaderDataCount
&&
_shaderData
[
id
- 1] !=
null
)
66
{
67
return
_shaderData
[
id
- 1].GetSecondaryShader(player);
68
}
69
return
null
;
70
}
71
}
System.Collections.Generic.Dictionary.ContainsKey
bool ContainsKey(TKey key)
Definition
Dictionary.cs:917
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
Terraria.Entity
Definition
Entity.cs:7
Terraria.Graphics.Shaders.ArmorShaderDataSet._shaderDataCount
int _shaderDataCount
Definition
ArmorShaderDataSet.cs:12
Terraria.Graphics.Shaders.ArmorShaderDataSet.GetSecondaryShader
ArmorShaderData GetSecondaryShader(int id, Player player)
Definition
ArmorShaderDataSet.cs:63
Terraria.Graphics.Shaders.ArmorShaderDataSet.BindShader< T >
T BindShader< T >(int itemId, T shaderData)
Definition
ArmorShaderDataSet.cs:14
Terraria.Graphics.Shaders.ArmorShaderDataSet.GetShaderFromItemId
ArmorShaderData GetShaderFromItemId(int type)
Definition
ArmorShaderDataSet.cs:45
Terraria.Graphics.Shaders.ArmorShaderDataSet._shaderLookupDictionary
Dictionary< int, int > _shaderLookupDictionary
Definition
ArmorShaderDataSet.cs:10
Terraria.Graphics.Shaders.ArmorShaderDataSet.Apply
void Apply(int shaderId, Entity entity, DrawData? drawData=null)
Definition
ArmorShaderDataSet.cs:21
Terraria.Graphics.Shaders.ArmorShaderDataSet.GetShaderIdFromItemId
int GetShaderIdFromItemId(int type)
Definition
ArmorShaderDataSet.cs:54
Terraria.Graphics.Shaders.ArmorShaderDataSet._shaderData
List< ArmorShaderData > _shaderData
Definition
ArmorShaderDataSet.cs:8
Terraria.Graphics.Shaders.ArmorShaderDataSet.ApplySecondary
void ApplySecondary(int shaderId, Entity entity, DrawData? drawData=null)
Definition
ArmorShaderDataSet.cs:33
Terraria.Graphics.Shaders.ArmorShaderDataSet
Definition
ArmorShaderDataSet.cs:7
Terraria.Graphics.Shaders.ArmorShaderData
Definition
ArmorShaderData.cs:9
Terraria.Main.pixelShader
static Effect pixelShader
Definition
Main.cs:2764
Terraria.Main
Definition
Main.cs:79
Terraria.Player
Definition
Player.cs:42
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
Terraria.DataStructures
Definition
AEntitySource_OnHit.cs:1
Terraria.Graphics.Shaders
Definition
ArmorShaderData.cs:6
Terraria.DataStructures.DrawData
Definition
DrawData.cs:7
source
Terraria.Graphics.Shaders
ArmorShaderDataSet.cs
Generated by
1.10.0