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

◆ DrawCompositeArmorPiece()

static void Terraria.DataStructures.PlayerDrawLayers.DrawCompositeArmorPiece ( ref PlayerDrawSet drawinfo,
CompositePlayerDrawContext context,
DrawData data )
inlinestatic

Definition at line 44 of file PlayerDrawLayers.cs.

45 {
46 drawinfo.DrawDataCache.Add(data);
47 switch (context)
48 {
49 case CompositePlayerDrawContext.BackShoulder:
50 case CompositePlayerDrawContext.BackArm:
51 case CompositePlayerDrawContext.FrontArm:
52 case CompositePlayerDrawContext.FrontShoulder:
53 {
54 if (drawinfo.armGlowColor.PackedValue == 0)
55 {
56 break;
57 }
58 DrawData item2 = data;
59 item2.color = drawinfo.armGlowColor;
60 Rectangle value2 = item2.sourceRect.Value;
61 value2.Y += 224;
62 item2.sourceRect = value2;
63 if (drawinfo.drawPlayer.body == 227)
64 {
65 Vector2 position2 = item2.position;
66 for (int j = 0; j < 2; j++)
67 {
68 Vector2 vector2 = new Vector2((float)Main.rand.Next(-10, 10) * 0.125f, (float)Main.rand.Next(-10, 10) * 0.125f);
69 item2.position = position2 + vector2;
70 if (j == 0)
71 {
72 drawinfo.DrawDataCache.Add(item2);
73 }
74 }
75 }
76 drawinfo.DrawDataCache.Add(item2);
77 break;
78 }
80 {
81 if (drawinfo.bodyGlowColor.PackedValue == 0)
82 {
83 break;
84 }
85 DrawData item = data;
86 item.color = drawinfo.bodyGlowColor;
87 Rectangle value = item.sourceRect.Value;
88 value.Y += 224;
89 item.sourceRect = value;
90 if (drawinfo.drawPlayer.body == 227)
91 {
92 Vector2 position = item.position;
93 for (int i = 0; i < 2; i++)
94 {
95 Vector2 vector = new Vector2((float)Main.rand.Next(-10, 10) * 0.125f, (float)Main.rand.Next(-10, 10) * 0.125f);
96 item.position = position + vector;
97 if (i == 0)
98 {
99 drawinfo.DrawDataCache.Add(item);
100 }
101 }
102 }
103 drawinfo.DrawDataCache.Add(item);
104 break;
105 }
106 }
107 if (context == CompositePlayerDrawContext.FrontShoulder && drawinfo.drawPlayer.head == 269)
108 {
109 Vector2 position3 = drawinfo.helmetOffset + new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.bodyFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.bodyFrame.Height + 4f)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect;
110 DrawData item3 = new DrawData(TextureAssets.Extra[214].Value, position3, drawinfo.drawPlayer.bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
111 item3.shader = drawinfo.cHead;
112 drawinfo.DrawDataCache.Add(item3);
113 item3 = new DrawData(TextureAssets.GlowMask[308].Value, position3, drawinfo.drawPlayer.bodyFrame, drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
114 item3.shader = drawinfo.cHead;
115 drawinfo.DrawDataCache.Add(item3);
116 }
117 if (context == CompositePlayerDrawContext.FrontArm && drawinfo.drawPlayer.body == 205)
118 {
119 Color color = new Color(100, 100, 100, 0);
120 ulong seed = (ulong)(drawinfo.drawPlayer.miscCounter / 4);
121 int num = 4;
122 for (int k = 0; k < num; k++)
123 {
124 float num2 = (float)Utils.RandomInt(ref seed, -10, 11) * 0.2f;
125 float num3 = (float)Utils.RandomInt(ref seed, -10, 1) * 0.15f;
126 DrawData item4 = data;
127 Rectangle value3 = item4.sourceRect.Value;
128 value3.Y += 224;
129 item4.sourceRect = value3;
130 item4.position.X += num2;
131 item4.position.Y += num3;
132 item4.color = color;
133 drawinfo.DrawDataCache.Add(item4);
134 }
135 }
136 }
void Add(TKey key, TValue value)
static Asset< Texture2D >[] GlowMask
static Asset< Texture2D >[] Extra

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Microsoft.Xna.Framework.Graphics.Color, Terraria.GameContent.TextureAssets.Extra, Terraria.GameContent.TextureAssets.GlowMask, System.item, Terraria.Main.rand, Terraria.Utils.RandomInt(), Terraria.Main.screenPosition, System.value, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_12_SkinComposite_BackArmShirt(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_17_TorsoComposite(), and Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_28_ArmOverItemComposite().