Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SetShaderForData()

static void Terraria.DataStructures.PlayerDrawHelper.SetShaderForData ( Player player,
int cHead,
ref DrawData cdd )
inlinestatic

Definition at line 29 of file PlayerDrawHelper.cs.

30 {
31 UnpackShader(cdd.shader, out var localShaderIndex, out var shaderType);
32 switch (shaderType)
33 {
34 case ShaderConfiguration.ArmorShader:
35 GameShaders.Hair.Apply(0, player, cdd);
36 GameShaders.Armor.Apply(localShaderIndex, player, cdd);
37 break;
38 case ShaderConfiguration.HairShader:
39 if (player.head == 0)
40 {
41 GameShaders.Hair.Apply(0, player, cdd);
42 GameShaders.Armor.Apply(cHead, player, cdd);
43 }
44 else
45 {
46 GameShaders.Armor.Apply(0, player, cdd);
47 GameShaders.Hair.Apply((short)localShaderIndex, player, cdd);
48 }
49 break;
50 case ShaderConfiguration.TileShader:
51 Main.tileShader.CurrentTechnique.Passes[localShaderIndex].Apply();
52 break;
53 case ShaderConfiguration.TilePaintID:
54 {
55 int index = Main.ConvertPaintIdToTileShaderIndex(localShaderIndex, isUsedForPaintingGrass: false, useWallShaderHacks: false);
56 Main.tileShader.CurrentTechnique.Passes[index].Apply();
57 break;
58 }
59 }
60 }
static void UnpackShader(int packedShaderIndex, out int localShaderIndex, out ShaderConfiguration shaderType)
static HairShaderDataSet Hair
Definition GameShaders.cs:9
static ArmorShaderDataSet Armor
Definition GameShaders.cs:7

References Terraria.Graphics.Shaders.GameShaders.Armor, Terraria.Main.ConvertPaintIdToTileShaderIndex(), Terraria.Graphics.Shaders.GameShaders.Hair, Terraria.Player.head, Terraria.Main.tileShader, and Terraria.DataStructures.PlayerDrawHelper.UnpackShader().

Referenced by Terraria.Graphics.Renderers.FlameParticle.Draw(), Terraria.DataStructures.PlayerDrawHeadLayers.DrawPlayer_RenderAllLayers(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_RenderAllLayers(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_RenderAllLayersSlow(), and Terraria.Graphics.Renderers.MapHeadRenderer.RenderDrawData().