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

◆ DrawPlayer_21_Head()

static void Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_21_Head ( ref PlayerDrawSet drawinfo)
inlinestatic

Definition at line 1729 of file PlayerDrawLayers.cs.

1730 {
1731 Vector2 helmetOffset = drawinfo.helmetOffset;
1733 bool flag = drawinfo.drawPlayer.head == 14 || drawinfo.drawPlayer.head == 56 || drawinfo.drawPlayer.head == 114 || drawinfo.drawPlayer.head == 158 || drawinfo.drawPlayer.head == 69 || drawinfo.drawPlayer.head == 180;
1734 bool flag2 = drawinfo.drawPlayer.head == 28;
1735 bool flag3 = drawinfo.drawPlayer.head == 39 || drawinfo.drawPlayer.head == 38;
1736 Vector2 vector = new Vector2(-drawinfo.drawPlayer.bodyFrame.Width / 2 + drawinfo.drawPlayer.width / 2, drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height + 4);
1737 Vector2 position = (drawinfo.Position - Main.screenPosition + vector).Floor() + drawinfo.drawPlayer.headPosition + drawinfo.headVect;
1738 if (drawinfo.playerEffect.HasFlag(SpriteEffects.FlipVertically))
1739 {
1740 int num = drawinfo.drawPlayer.bodyFrame.Height - drawinfo.hairFrontFrame.Height;
1741 position.Y += num;
1742 }
1743 position += drawinfo.hairOffset;
1744 if (drawinfo.fullHair)
1745 {
1746 Color color = drawinfo.colorArmorHead;
1747 int shader = drawinfo.cHead;
1748 if (ArmorIDs.Head.Sets.UseSkinColor[drawinfo.drawPlayer.head])
1749 {
1750 color = ((!drawinfo.drawPlayer.isDisplayDollOrInanimate) ? drawinfo.colorHead : drawinfo.colorDisplayDollSkin);
1751 shader = drawinfo.skinDyePacked;
1752 }
1753 DrawData item = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, 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, drawinfo.drawPlayer.bodyFrame, color, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1754 item.shader = shader;
1755 drawinfo.DrawDataCache.Add(item);
1756 if (!drawinfo.drawPlayer.invis)
1757 {
1758 item = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, position, drawinfo.hairFrontFrame, drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1759 item.shader = drawinfo.hairDyePacked;
1760 drawinfo.DrawDataCache.Add(item);
1761 }
1762 }
1763 if (drawinfo.hatHair && !drawinfo.drawPlayer.invis)
1764 {
1765 DrawData item = new DrawData(TextureAssets.PlayerHairAlt[drawinfo.drawPlayer.hair].Value, position, drawinfo.hairFrontFrame, drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1766 item.shader = drawinfo.hairDyePacked;
1767 drawinfo.DrawDataCache.Add(item);
1768 }
1769 if (drawinfo.drawPlayer.head == 270)
1770 {
1771 Rectangle bodyFrame = drawinfo.drawPlayer.bodyFrame;
1772 bodyFrame.Width += 2;
1773 DrawData item = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, 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, bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1774 item.shader = drawinfo.cHead;
1775 drawinfo.DrawDataCache.Add(item);
1776 item = new DrawData(TextureAssets.GlowMask[drawinfo.headGlowMask].Value, 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, bodyFrame, drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1777 item.shader = drawinfo.cHead;
1778 drawinfo.DrawDataCache.Add(item);
1779 }
1780 else if (flag)
1781 {
1782 Rectangle bodyFrame2 = drawinfo.drawPlayer.bodyFrame;
1783 Vector2 headVect = drawinfo.headVect;
1784 if (drawinfo.drawPlayer.gravDir == 1f)
1785 {
1786 if (bodyFrame2.Y != 0)
1787 {
1788 bodyFrame2.Y -= 2;
1789 headVect.Y += 2f;
1790 }
1791 bodyFrame2.Height -= 8;
1792 }
1793 else if (bodyFrame2.Y != 0)
1794 {
1795 bodyFrame2.Y -= 2;
1796 headVect.Y -= 10f;
1797 bodyFrame2.Height -= 8;
1798 }
1799 Color color2 = drawinfo.colorArmorHead;
1800 int shader2 = drawinfo.cHead;
1801 if (ArmorIDs.Head.Sets.UseSkinColor[drawinfo.drawPlayer.head])
1802 {
1803 color2 = ((!drawinfo.drawPlayer.isDisplayDollOrInanimate) ? drawinfo.colorHead : drawinfo.colorDisplayDollSkin);
1804 shader2 = drawinfo.skinDyePacked;
1805 }
1806 DrawData item = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, 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, bodyFrame2, color2, drawinfo.drawPlayer.headRotation, headVect, 1f, drawinfo.playerEffect);
1807 item.shader = shader2;
1808 drawinfo.DrawDataCache.Add(item);
1809 }
1810 else if (drawinfo.drawPlayer.head == 259)
1811 {
1812 int verticalFrames = 27;
1813 Texture2D value = TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value;
1814 Rectangle rectangle = value.Frame(1, verticalFrames, 0, drawinfo.drawPlayer.rabbitOrderFrame.DisplayFrame);
1815 Vector2 origin = rectangle.Size() / 2f;
1816 int num2 = drawinfo.drawPlayer.babyBird.ToInt();
1817 Vector2 vector2 = DrawPlayer_21_Head_GetSpecialHatDrawPosition(ref drawinfo, ref helmetOffset, new Vector2(1 + num2 * 2, -26 + drawinfo.drawPlayer.babyBird.ToInt() * -6));
1818 int hatStacks = GetHatStacks(ref drawinfo, 4955);
1819 float num3 = (float)Math.PI / 60f;
1820 float num4 = num3 * drawinfo.drawPlayer.position.X % ((float)Math.PI * 2f);
1821 for (int num5 = hatStacks - 1; num5 >= 0; num5--)
1822 {
1823 float x = Vector2.UnitY.RotatedBy(num4 + num3 * (float)num5).X * ((float)num5 / 30f) * 2f - (float)(num5 * 2 * drawinfo.drawPlayer.direction);
1824 DrawData item = new DrawData(value, vector2 + new Vector2(x, (float)(num5 * -14) * drawinfo.drawPlayer.gravDir), rectangle, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, origin, 1f, drawinfo.playerEffect);
1825 item.shader = drawinfo.cHead;
1826 drawinfo.DrawDataCache.Add(item);
1827 }
1828 if (!drawinfo.drawPlayer.invis)
1829 {
1830 DrawData item = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, position, drawinfo.hairFrontFrame, drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1831 item.shader = drawinfo.hairDyePacked;
1832 drawinfo.DrawDataCache.Add(item);
1833 }
1834 }
1835 else if (drawinfo.drawPlayer.head > 0 && drawinfo.drawPlayer.head < ArmorIDs.Head.Count && !flag2)
1836 {
1837 if (!(drawinfo.drawPlayer.invis && flag3))
1838 {
1839 if (drawinfo.drawPlayer.head == 13)
1840 {
1841 int hatStacks2 = GetHatStacks(ref drawinfo, 205);
1842 float num6 = (float)Math.PI / 60f;
1843 float num7 = num6 * drawinfo.drawPlayer.position.X % ((float)Math.PI * 2f);
1844 for (int i = 0; i < hatStacks2; i++)
1845 {
1846 float num8 = Vector2.UnitY.RotatedBy(num7 + num6 * (float)i).X * ((float)i / 30f) * 2f;
1847 DrawData item = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, helmetOffset + new Vector2((float)(int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.bodyFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)) + num8, (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.bodyFrame.Height + 4f - (float)(4 * i))) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, drawinfo.drawPlayer.bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1848 item.shader = drawinfo.cHead;
1849 drawinfo.DrawDataCache.Add(item);
1850 }
1851 }
1852 else if (drawinfo.drawPlayer.head == 265)
1853 {
1854 int verticalFrames2 = 6;
1855 Texture2D value2 = TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value;
1856 Rectangle rectangle2 = value2.Frame(1, verticalFrames2, 0, drawinfo.drawPlayer.rabbitOrderFrame.DisplayFrame);
1857 Vector2 origin2 = rectangle2.Size() / 2f;
1859 int hatStacks3 = GetHatStacks(ref drawinfo, 5004);
1860 float num9 = (float)Math.PI / 60f;
1861 float num10 = num9 * drawinfo.drawPlayer.position.X % ((float)Math.PI * 2f);
1862 int num11 = hatStacks3 * 4 + 2;
1863 int num12 = 0;
1864 bool flag4 = (Main.GlobalTimeWrappedHourly + 180f) % 600f < 60f;
1865 for (int num13 = num11 - 1; num13 >= 0; num13--)
1866 {
1867 int num14 = 0;
1868 if (num13 == num11 - 1)
1869 {
1870 rectangle2.Y = 0;
1871 num14 = 2;
1872 }
1873 else if (num13 == 0)
1874 {
1875 rectangle2.Y = rectangle2.Height * 5;
1876 }
1877 else
1878 {
1879 rectangle2.Y = rectangle2.Height * (num12++ % 4 + 1);
1880 }
1881 if (!(rectangle2.Y == rectangle2.Height * 3 && flag4))
1882 {
1883 float x2 = Vector2.UnitY.RotatedBy(num10 + num9 * (float)num13).X * ((float)num13 / 10f) * 4f - (float)num13 * 0.1f * (float)drawinfo.drawPlayer.direction;
1884 DrawData item = new DrawData(value2, vector3 + new Vector2(x2, (float)(num13 * -4 + num14) * drawinfo.drawPlayer.gravDir), rectangle2, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, origin2, 1f, drawinfo.playerEffect);
1885 item.shader = drawinfo.cHead;
1886 drawinfo.DrawDataCache.Add(item);
1887 }
1888 }
1889 }
1890 else
1891 {
1892 Rectangle bodyFrame3 = drawinfo.drawPlayer.bodyFrame;
1893 Vector2 headVect2 = drawinfo.headVect;
1894 if (drawinfo.drawPlayer.gravDir == 1f)
1895 {
1896 bodyFrame3.Height -= 4;
1897 }
1898 else
1899 {
1900 headVect2.Y -= 4f;
1901 bodyFrame3.Height -= 4;
1902 }
1903 Color color3 = drawinfo.colorArmorHead;
1904 int shader3 = drawinfo.cHead;
1905 if (ArmorIDs.Head.Sets.UseSkinColor[drawinfo.drawPlayer.head])
1906 {
1907 color3 = ((!drawinfo.drawPlayer.isDisplayDollOrInanimate) ? drawinfo.colorHead : drawinfo.colorDisplayDollSkin);
1908 shader3 = drawinfo.skinDyePacked;
1909 }
1910 DrawData item = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, 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, bodyFrame3, color3, drawinfo.drawPlayer.headRotation, headVect2, 1f, drawinfo.playerEffect);
1911 item.shader = shader3;
1912 drawinfo.DrawDataCache.Add(item);
1913 if (drawinfo.headGlowMask != -1)
1914 {
1915 if (drawinfo.headGlowMask == 309)
1916 {
1917 int num15 = DrawPlayer_Head_GetTVScreen(drawinfo.drawPlayer);
1918 if (num15 != 0)
1919 {
1920 int num16 = 0;
1921 num16 += drawinfo.drawPlayer.bodyFrame.Y / 56;
1922 if (num16 >= Main.OffsetsPlayerHeadgear.Length)
1923 {
1924 num16 = 0;
1925 }
1926 Vector2 vector4 = Main.OffsetsPlayerHeadgear[num16];
1927 vector4.Y -= 2f;
1928 vector4 *= (float)(-drawinfo.playerEffect.HasFlag(SpriteEffects.FlipVertically).ToDirectionInt());
1929 Texture2D value3 = TextureAssets.GlowMask[drawinfo.headGlowMask].Value;
1930 int frameY = drawinfo.drawPlayer.miscCounter % 20 / 5;
1931 if (num15 == 5)
1932 {
1933 frameY = 0;
1934 if (drawinfo.drawPlayer.eyeHelper.EyeFrameToShow > 0)
1935 {
1936 frameY = 2;
1937 }
1938 }
1939 Rectangle value4 = value3.Frame(6, 4, num15, frameY, -2);
1940 item = new DrawData(value3, vector4 + 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, value4, drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1941 item.shader = drawinfo.cHead;
1942 drawinfo.DrawDataCache.Add(item);
1943 }
1944 }
1945 else if (drawinfo.headGlowMask == 273)
1946 {
1947 for (int j = 0; j < 2; j++)
1948 {
1949 item = new DrawData(position: new Vector2((float)Main.rand.Next(-10, 10) * 0.125f, (float)Main.rand.Next(-10, 10) * 0.125f) + 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, texture: TextureAssets.GlowMask[drawinfo.headGlowMask].Value, sourceRect: bodyFrame3, color: drawinfo.headGlowColor, rotation: drawinfo.drawPlayer.headRotation, origin: headVect2, scale: 1f, effect: drawinfo.playerEffect);
1950 item.shader = drawinfo.cHead;
1951 drawinfo.DrawDataCache.Add(item);
1952 }
1953 }
1954 else
1955 {
1956 item = new DrawData(TextureAssets.GlowMask[drawinfo.headGlowMask].Value, 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, bodyFrame3, drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, headVect2, 1f, drawinfo.playerEffect);
1957 item.shader = drawinfo.cHead;
1958 drawinfo.DrawDataCache.Add(item);
1959 }
1960 }
1961 if (drawinfo.drawPlayer.head == 211)
1962 {
1963 Color color4 = new Color(100, 100, 100, 0);
1964 ulong seed = (ulong)(drawinfo.drawPlayer.miscCounter / 4 + 100);
1965 int num17 = 4;
1966 for (int k = 0; k < num17; k++)
1967 {
1968 float x3 = (float)Utils.RandomInt(ref seed, -10, 11) * 0.2f;
1969 float y = (float)Utils.RandomInt(ref seed, -14, 1) * 0.15f;
1970 item = new DrawData(TextureAssets.GlowMask[241].Value, 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 + new Vector2(x3, y), drawinfo.drawPlayer.bodyFrame, color4, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1971 item.shader = drawinfo.cHead;
1972 drawinfo.DrawDataCache.Add(item);
1973 }
1974 }
1975 }
1976 }
1977 }
1978 else if (!drawinfo.drawPlayer.invis && (drawinfo.drawPlayer.face < 0 || !ArmorIDs.Face.Sets.PreventHairDraw[drawinfo.drawPlayer.face]))
1979 {
1980 DrawData item = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, position, drawinfo.hairFrontFrame, drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1981 item.shader = drawinfo.hairDyePacked;
1982 drawinfo.DrawDataCache.Add(item);
1983 }
1984 if (drawinfo.drawPlayer.beard > 0 && (drawinfo.drawPlayer.head < 0 || !ArmorIDs.Head.Sets.PreventBeardDraw[drawinfo.drawPlayer.head]))
1985 {
1986 Vector2 beardDrawOffsetFromHelmet = drawinfo.drawPlayer.GetBeardDrawOffsetFromHelmet();
1987 Color color5 = drawinfo.colorArmorHead;
1988 if (ArmorIDs.Beard.Sets.UseHairColor[drawinfo.drawPlayer.beard])
1989 {
1990 color5 = drawinfo.colorHair;
1991 }
1992 DrawData item = new DrawData(TextureAssets.AccBeard[drawinfo.drawPlayer.beard].Value, beardDrawOffsetFromHelmet + 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, color5, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
1993 item.shader = drawinfo.cBeard;
1994 drawinfo.DrawDataCache.Add(item);
1995 }
1996 if (drawinfo.drawPlayer.head == 205)
1997 {
1998 DrawData drawData = new DrawData(TextureAssets.Extra[77].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);
1999 drawData.shader = drawinfo.skinDyePacked;
2000 DrawData item = drawData;
2001 drawinfo.DrawDataCache.Add(item);
2002 }
2003 if (drawinfo.drawPlayer.head == 214 && !drawinfo.drawPlayer.invis)
2004 {
2005 Rectangle bodyFrame4 = drawinfo.drawPlayer.bodyFrame;
2006 bodyFrame4.Y = 0;
2007 float num18 = (float)drawinfo.drawPlayer.miscCounter / 300f;
2008 Color color6 = new Color(0, 0, 0, 0);
2009 float num19 = 0.8f;
2010 float num20 = 0.9f;
2011 if (num18 >= num19)
2012 {
2013 color6 = Color.Lerp(Color.Transparent, new Color(200, 200, 200, 0), Utils.GetLerpValue(num19, num20, num18, clamped: true));
2014 }
2015 if (num18 >= num20)
2016 {
2017 color6 = Color.Lerp(Color.Transparent, new Color(200, 200, 200, 0), Utils.GetLerpValue(1f, num20, num18, clamped: true));
2018 }
2019 color6 *= drawinfo.stealth * (1f - drawinfo.shadow);
2020 DrawData item = new DrawData(TextureAssets.Extra[90].Value, 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 - Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height], bodyFrame4, color6, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2021 drawinfo.DrawDataCache.Add(item);
2022 }
2023 if (drawinfo.drawPlayer.head == 137)
2024 {
2025 DrawData item = new DrawData(TextureAssets.JackHat.Value, 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, drawinfo.drawPlayer.bodyFrame, new Color(255, 255, 255, 255), drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2026 drawinfo.DrawDataCache.Add(item);
2027 for (int l = 0; l < 7; l++)
2028 {
2029 Color color7 = new Color(110 - l * 10, 110 - l * 10, 110 - l * 10, 110 - l * 10);
2030 Vector2 vector5 = new Vector2((float)Main.rand.Next(-10, 11) * 0.2f, (float)Main.rand.Next(-10, 11) * 0.2f);
2031 vector5.X = drawinfo.drawPlayer.itemFlamePos[l].X;
2032 vector5.Y = drawinfo.drawPlayer.itemFlamePos[l].Y;
2033 vector5 *= 0.5f;
2034 item = new DrawData(TextureAssets.JackHat.Value, 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 + vector5, drawinfo.drawPlayer.bodyFrame, color7, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2035 drawinfo.DrawDataCache.Add(item);
2036 }
2037 }
2038 if (drawinfo.drawPlayer.babyBird)
2039 {
2040 Rectangle bodyFrame5 = drawinfo.drawPlayer.bodyFrame;
2041 bodyFrame5.Y = 0;
2043 Color color8 = drawinfo.colorArmorHead;
2044 if (drawinfo.drawPlayer.mount.Active && drawinfo.drawPlayer.mount.Type == 52)
2045 {
2046 Vector2 mountedCenter = drawinfo.drawPlayer.MountedCenter;
2047 color8 = drawinfo.drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)mountedCenter.X / 16, (int)mountedCenter.Y / 16, Color.White), drawinfo.shadow);
2048 vector6 = new Vector2(0f, 6f) * drawinfo.drawPlayer.Directions;
2049 }
2050 DrawData item = new DrawData(TextureAssets.Extra[100].Value, vector6 + 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 + Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height] * drawinfo.drawPlayer.gravDir, bodyFrame5, color8, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
2051 drawinfo.DrawDataCache.Add(item);
2052 }
2053 }
void Add(TKey key, TValue value)
const double PI
Definition Math.cs:16
static int GetHatStacks(ref PlayerDrawSet drawinfo, int hatItemId)
static Vector2 DrawPlayer_21_Head_GetSpecialHatDrawPosition(ref PlayerDrawSet drawinfo, ref Vector2 helmetOffset, Vector2 hatOffset)
static void DrawPlayer_21_Head_TheFace(ref PlayerDrawSet drawinfo)
static Asset< Texture2D >[] PlayerHair
static Asset< Texture2D >[] ArmorHead
static Asset< Texture2D >[] GlowMask
static Asset< Texture2D > JackHat
static Asset< Texture2D >[] Extra
static Asset< Texture2D >[] PlayerHairAlt
static Asset< Texture2D >[] AccBeard
static bool[] PreventBeardDraw
Definition ArmorIDs.cs:18
static readonly int Count
Definition ArmorIDs.cs:587
static Color Transparent
Definition Color.cs:76
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References Terraria.GameContent.TextureAssets.AccBeard, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.GameContent.TextureAssets.ArmorHead, Microsoft.Xna.Framework.Graphics.Color, Terraria.ID.ArmorIDs.Head.Count, Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_21_Head_GetSpecialHatDrawPosition(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_21_Head_TheFace(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_Head_GetTVScreen(), Terraria.GameContent.TextureAssets.Extra, Terraria.Lighting.GetColorClamped(), Terraria.DataStructures.PlayerDrawLayers.GetHatStacks(), Terraria.Utils.GetLerpValue(), Terraria.GameContent.TextureAssets.GlowMask, System.item, Terraria.GameContent.TextureAssets.JackHat, Microsoft.Xna.Framework.Color.Lerp(), Terraria.Main.OffsetsPlayerHeadgear, System.Math.PI, Terraria.GameContent.TextureAssets.PlayerHair, Terraria.GameContent.TextureAssets.PlayerHairAlt, Terraria.ID.ArmorIDs.Head.Sets.PreventBeardDraw, Terraria.ID.ArmorIDs.Face.Sets.PreventHairDraw, Terraria.Main.rand, Terraria.Utils.RandomInt(), Terraria.Main.screenPosition, Microsoft.Xna.Framework.Color.Transparent, Microsoft.Xna.Framework.Vector2.UnitY, Terraria.ID.ArmorIDs.Beard.Sets.UseHairColor, Terraria.ID.ArmorIDs.Head.Sets.UseSkinColor, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, System.X, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayer_UseNormalLayers().