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

◆ DrawPlayer_28_ArmOverItemComposite()

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

Definition at line 2943 of file PlayerDrawLayers.cs.

2944 {
2945 Vector2 vector = 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.bodyPosition + new Vector2(drawinfo.drawPlayer.bodyFrame.Width / 2, drawinfo.drawPlayer.bodyFrame.Height / 2);
2946 Vector2 vector2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
2947 vector2.Y -= 2f;
2948 vector += vector2 * -drawinfo.playerEffect.HasFlag(SpriteEffects.FlipVertically).ToDirectionInt();
2949 float bodyRotation = drawinfo.drawPlayer.bodyRotation;
2950 float rotation = drawinfo.drawPlayer.bodyRotation + drawinfo.compositeFrontArmRotation;
2951 Vector2 bodyVect = drawinfo.bodyVect;
2953 bodyVect += compositeOffset_FrontArm;
2955 Vector2 position = vector + drawinfo.frontShoulderOffset;
2956 if (drawinfo.compFrontArmFrame.X / drawinfo.compFrontArmFrame.Width >= 7)
2957 {
2958 vector += new Vector2((!drawinfo.playerEffect.HasFlag(SpriteEffects.FlipHorizontally)) ? 1 : (-1), (!drawinfo.playerEffect.HasFlag(SpriteEffects.FlipVertically)) ? 1 : (-1));
2959 }
2960 _ = drawinfo.drawPlayer.invis;
2961 bool num = drawinfo.drawPlayer.body > 0 && drawinfo.drawPlayer.body < ArmorIDs.Body.Count;
2962 int num2 = (drawinfo.compShoulderOverFrontArm ? 1 : 0);
2963 int num3 = ((!drawinfo.compShoulderOverFrontArm) ? 1 : 0);
2964 int num4 = ((!drawinfo.compShoulderOverFrontArm) ? 1 : 0);
2965 bool flag = !drawinfo.hidesTopSkin;
2966 if (num)
2967 {
2968 if (!drawinfo.drawPlayer.invis || IsArmorDrawnWhenInvisible(drawinfo.drawPlayer.body))
2969 {
2970 Texture2D value = TextureAssets.ArmorBodyComposite[drawinfo.drawPlayer.body].Value;
2971 for (int i = 0; i < 2; i++)
2972 {
2973 if (!drawinfo.drawPlayer.invis && i == num4 && flag)
2974 {
2975 if (drawinfo.missingArm)
2976 {
2977 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, vector, drawinfo.compFrontArmFrame, drawinfo.colorBodySkin, rotation, bodyVect, 1f, drawinfo.playerEffect)
2978 {
2979 shader = drawinfo.skinDyePacked
2980 });
2981 }
2982 if (drawinfo.missingHand)
2983 {
2984 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 9].Value, vector, drawinfo.compFrontArmFrame, drawinfo.colorBodySkin, rotation, bodyVect, 1f, drawinfo.playerEffect)
2985 {
2986 shader = drawinfo.skinDyePacked
2987 });
2988 }
2989 }
2990 if (i == num2 && !drawinfo.hideCompositeShoulders)
2991 {
2992 DrawCompositeArmorPiece(ref drawinfo, CompositePlayerDrawContext.FrontShoulder, new DrawData(value, position, drawinfo.compFrontShoulderFrame, drawinfo.colorArmorBody, bodyRotation, bodyVect, 1f, drawinfo.playerEffect)
2993 {
2994 shader = drawinfo.cBody
2995 });
2996 }
2997 if (i == num3)
2998 {
2999 DrawCompositeArmorPiece(ref drawinfo, CompositePlayerDrawContext.FrontArm, new DrawData(value, vector, drawinfo.compFrontArmFrame, drawinfo.colorArmorBody, rotation, bodyVect, 1f, drawinfo.playerEffect)
3000 {
3001 shader = drawinfo.cBody
3002 });
3003 }
3004 }
3005 }
3006 }
3007 else if (!drawinfo.drawPlayer.invis)
3008 {
3009 for (int j = 0; j < 2; j++)
3010 {
3011 if (j == num2)
3012 {
3013 if (flag)
3014 {
3015 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, position, drawinfo.compFrontShoulderFrame, drawinfo.colorBodySkin, bodyRotation, bodyVect, 1f, drawinfo.playerEffect)
3016 {
3017 shader = drawinfo.skinDyePacked
3018 });
3019 }
3020 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 8].Value, position, drawinfo.compFrontShoulderFrame, drawinfo.colorUnderShirt, bodyRotation, bodyVect, 1f, drawinfo.playerEffect));
3021 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 13].Value, position, drawinfo.compFrontShoulderFrame, drawinfo.colorShirt, bodyRotation, bodyVect, 1f, drawinfo.playerEffect));
3022 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, position, drawinfo.compFrontShoulderFrame, drawinfo.colorShirt, bodyRotation, bodyVect, 1f, drawinfo.playerEffect));
3023 if (drawinfo.drawPlayer.head == 269)
3024 {
3025 Vector2 position2 = 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;
3026 DrawData item = new DrawData(TextureAssets.Extra[214].Value, position2, drawinfo.drawPlayer.bodyFrame, drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
3027 item.shader = drawinfo.cHead;
3028 drawinfo.DrawDataCache.Add(item);
3029 item = new DrawData(TextureAssets.GlowMask[308].Value, position2, drawinfo.drawPlayer.bodyFrame, drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect);
3030 item.shader = drawinfo.cHead;
3031 drawinfo.DrawDataCache.Add(item);
3032 }
3033 }
3034 if (j == num3)
3035 {
3036 if (flag)
3037 {
3038 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, vector, drawinfo.compFrontArmFrame, drawinfo.colorBodySkin, rotation, bodyVect, 1f, drawinfo.playerEffect)
3039 {
3040 shader = drawinfo.skinDyePacked
3041 });
3042 }
3043 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 8].Value, vector, drawinfo.compFrontArmFrame, drawinfo.colorUnderShirt, rotation, bodyVect, 1f, drawinfo.playerEffect));
3044 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 13].Value, vector, drawinfo.compFrontArmFrame, drawinfo.colorShirt, rotation, bodyVect, 1f, drawinfo.playerEffect));
3045 drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, vector, drawinfo.compFrontArmFrame, drawinfo.colorShirt, rotation, bodyVect, 1f, drawinfo.playerEffect));
3046 }
3047 }
3048 }
3049 if (drawinfo.drawPlayer.handon > 0 && drawinfo.drawPlayer.handon < ArmorIDs.HandOn.Count)
3050 {
3051 Texture2D value2 = TextureAssets.AccHandsOnComposite[drawinfo.drawPlayer.handon].Value;
3052 DrawCompositeArmorPiece(ref drawinfo, CompositePlayerDrawContext.FrontArmAccessory, new DrawData(value2, vector, drawinfo.compFrontArmFrame, drawinfo.colorArmorBody, rotation, bodyVect, 1f, drawinfo.playerEffect)
3053 {
3054 shader = drawinfo.cHandOn
3055 });
3056 }
3057 }
void Add(TKey key, TValue value)
static void DrawCompositeArmorPiece(ref PlayerDrawSet drawinfo, CompositePlayerDrawContext context, DrawData data)
static bool IsArmorDrawnWhenInvisible(int torsoID)
static Vector2 GetCompositeOffset_FrontArm(ref PlayerDrawSet drawinfo)
static Asset< Texture2D >[] AccHandsOnComposite
static Asset< Texture2D >[] ArmorBodyComposite
static Asset< Texture2D >[] GlowMask
static Asset< Texture2D >[] Extra
static Asset< Texture2D >[,] Players
static readonly int Count
Definition ArmorIDs.cs:1032
static readonly int Count
Definition ArmorIDs.cs:1536

References Terraria.GameContent.TextureAssets.AccHandsOnComposite, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.GameContent.TextureAssets.ArmorBodyComposite, Terraria.ID.ArmorIDs.Body.Count, Terraria.ID.ArmorIDs.HandOn.Count, Terraria.DataStructures.PlayerDrawLayers.DrawCompositeArmorPiece(), Terraria.GameContent.TextureAssets.Extra, Terraria.DataStructures.PlayerDrawLayers.GetCompositeOffset_FrontArm(), Terraria.GameContent.TextureAssets.GlowMask, Terraria.DataStructures.PlayerDrawLayers.IsArmorDrawnWhenInvisible(), System.item, Terraria.Main.OffsetsPlayerHeadgear, Terraria.GameContent.TextureAssets.Players, Terraria.Main.screenPosition, System.value, and Microsoft.Xna.Framework.Graphics.Vector2.

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