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

◆ DrawPlayer_21_Head_TheFace()

static void Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_21_Head_TheFace ( ref PlayerDrawSet drawinfo)
inlinestaticprivate

Definition at line 2113 of file PlayerDrawLayers.cs.

2114 {
2115 bool flag = drawinfo.drawPlayer.head == 38 || drawinfo.drawPlayer.head == 135 || drawinfo.drawPlayer.head == 269;
2116 if (!flag && drawinfo.drawPlayer.faceHead > 0 && drawinfo.drawPlayer.faceHead < ArmorIDs.Face.Count)
2117 {
2118 Vector2 faceHeadOffsetFromHelmet = drawinfo.drawPlayer.GetFaceHeadOffsetFromHelmet();
2119 DrawData item = new DrawData(TextureAssets.AccFace[drawinfo.drawPlayer.faceHead].Value, 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 + faceHeadOffsetFromHelmet, drawinfo.drawPlayer.bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2120 item.shader = drawinfo.cFaceHead;
2121 drawinfo.DrawDataCache.Add(item);
2122 if (drawinfo.drawPlayer.face <= 0 || !ArmorIDs.Face.Sets.DrawInFaceUnderHairLayer[drawinfo.drawPlayer.face])
2123 {
2124 return;
2125 }
2126 float num = 0f;
2127 if (drawinfo.drawPlayer.face == 5)
2128 {
2129 sbyte faceHead = drawinfo.drawPlayer.faceHead;
2130 if ((uint)(faceHead - 10) <= 3u)
2131 {
2132 num = 2 * drawinfo.drawPlayer.direction;
2133 }
2134 }
2135 item = new DrawData(TextureAssets.AccFace[drawinfo.drawPlayer.face].Value, new Vector2((float)(int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.bodyFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)) + num, (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.bodyFrame.Height + 4f)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, drawinfo.drawPlayer.bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2136 item.shader = drawinfo.cFace;
2137 drawinfo.DrawDataCache.Add(item);
2138 }
2139 else if (!drawinfo.drawPlayer.invis && !flag)
2140 {
2141 DrawData drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 0].Value, 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, drawinfo.drawPlayer.bodyFrame, drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2142 drawData.shader = drawinfo.skinDyePacked;
2143 DrawData item = drawData;
2144 drawinfo.DrawDataCache.Add(item);
2145 item = new DrawData(TextureAssets.Players[drawinfo.skinVar, 1].Value, 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, drawinfo.drawPlayer.bodyFrame, drawinfo.colorEyeWhites, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2146 drawinfo.DrawDataCache.Add(item);
2147 item = new DrawData(TextureAssets.Players[drawinfo.skinVar, 2].Value, 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, drawinfo.drawPlayer.bodyFrame, drawinfo.colorEyes, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2148 drawinfo.DrawDataCache.Add(item);
2150 if (val.IsLoaded)
2151 {
2152 Vector2 vector = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
2153 vector.Y -= 2f;
2154 vector *= (float)(-drawinfo.playerEffect.HasFlag(SpriteEffects.FlipVertically).ToDirectionInt());
2155 Rectangle value = val.Frame(1, 3, 0, drawinfo.drawPlayer.eyeHelper.EyeFrameToShow);
2156 drawData = new DrawData(val.Value, 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 + vector, value, drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2157 drawData.shader = drawinfo.skinDyePacked;
2158 item = drawData;
2159 drawinfo.DrawDataCache.Add(item);
2160 }
2161 if (drawinfo.drawPlayer.yoraiz0rDarkness)
2162 {
2163 drawData = new DrawData(TextureAssets.Extra[67].Value, 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, drawinfo.drawPlayer.bodyFrame, drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2164 drawData.shader = drawinfo.skinDyePacked;
2165 item = drawData;
2166 drawinfo.DrawDataCache.Add(item);
2167 }
2168 if (drawinfo.drawPlayer.face > 0 && ArmorIDs.Face.Sets.DrawInFaceUnderHairLayer[drawinfo.drawPlayer.face])
2169 {
2170 item = new DrawData(TextureAssets.AccFace[drawinfo.drawPlayer.face].Value, 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, drawinfo.drawPlayer.bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2171 item.shader = drawinfo.cFace;
2172 drawinfo.DrawDataCache.Add(item);
2173 }
2174 }
2175 }
void Add(TKey key, TValue value)
static Asset< Texture2D >[] Extra
static Asset< Texture2D >[,] Players
static Asset< Texture2D >[] AccFace
static bool[] DrawInFaceUnderHairLayer
Definition ArmorIDs.cs:1985
static readonly sbyte Count
Definition ArmorIDs.cs:2036

References Terraria.GameContent.TextureAssets.AccFace, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.ID.ArmorIDs.Face.Count, Terraria.ID.ArmorIDs.Face.Sets.DrawInFaceUnderHairLayer, Terraria.GameContent.TextureAssets.Extra, System.item, Terraria.Main.OffsetsPlayerHeadgear, Terraria.GameContent.TextureAssets.Players, Terraria.Main.screenPosition, and System.value.

Referenced by Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_21_Head().