protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player player = drawInfo.drawPlayer;

            ModItem   item    = player.HeldItem.ModItem;
            Texture2D texture = TextureAssets.Item[item.Type].Value;

            Vector2 compositeOffset_FrontArm = new Vector2(-5 * (!drawInfo.playerEffect.HasFlag(SpriteEffects.FlipHorizontally) ? 1 : -1), 0f);

            Vector2 vector = new Vector2((int)(drawInfo.Position.X - Main.screenPosition.X - drawInfo.drawPlayer.bodyFrame.Width * 0.5f + drawInfo.drawPlayer.width * 0.5f), (int)(drawInfo.Position.Y - Main.screenPosition.Y + drawInfo.drawPlayer.height - drawInfo.drawPlayer.bodyFrame.Height + 4f)) + drawInfo.drawPlayer.bodyPosition + new Vector2(drawInfo.drawPlayer.bodyFrame.Width * 0.5f, drawInfo.drawPlayer.bodyFrame.Height * 0.5f);
            Vector2 value  = Main.OffsetsPlayerHeadgear[drawInfo.drawPlayer.bodyFrame.Y / drawInfo.drawPlayer.bodyFrame.Height];

            value.Y -= 2f;
            vector  += value * -drawInfo.playerEffect.HasFlag(SpriteEffects.FlipVertically).ToDirectionInt();
            vector  += compositeOffset_FrontArm;
            if (drawInfo.compFrontArmFrame.Width != 0 && drawInfo.compFrontArmFrame.X / drawInfo.compFrontArmFrame.Width >= 7)
            {
                vector += new Vector2(!drawInfo.playerEffect.HasFlag(SpriteEffects.FlipHorizontally) ? 1 : -1, !drawInfo.playerEffect.HasFlag(SpriteEffects.FlipVertically) ? 1 : -1);
            }

            float targetItemRotation = MathUtility.PiOver2 - MathUtility.AngleBetween(Main.MouseWorld - player.Center, -Vector2.UnitY);

            drawInfo.compositeFrontArmRotation = targetItemRotation;

            if (player.direction == 1)
            {
                drawInfo.compositeFrontArmRotation -= MathUtility.PI;
            }

            drawInfo.DrawDataCache.Add(new DrawData(
                                           texture,
                                           vector,
                                           null,
                                           Color.White,
                                           targetItemRotation,
                                           ((IRotatableItem)item).GetOrigin(player),
                                           1f,
                                           player.direction == 1 ? SpriteEffects.FlipVertically | SpriteEffects.FlipHorizontally : SpriteEffects.FlipHorizontally,
                                           0
                                           ));
        }