private static int repairPieces(float radius)
        {
            Player player = Player.m_localPlayer;

            if (!player)
            {
                return(0);
            }
            int count = 0;

            Collider[] array = Physics.OverlapSphere(player.transform.position, radius, destroyMask);
            for (int i = 0; i < array.Length; i++)
            {
                Piece piece = array[i].GetComponentInParent <Piece>();
                if (piece)
                {
                    if (!piece.IsCreator() && !allowRepairOther.Value)
                    {
                        continue;
                    }
                    if (requireCraftingStation.Value && !Traverse.Create(player).Method("CheckCanRemovePiece", new object[] { piece }).GetValue <bool>())
                    {
                        continue;
                    }
                    ZNetView component = piece.GetComponent <ZNetView>();
                    if (component == null)
                    {
                        continue;
                    }
                    WearNTear wnt = piece.GetComponent <WearNTear>();
                    if (!wnt || !wnt.Repair())
                    {
                        continue;
                    }
                    count++;
                }
            }
            Player.m_localPlayer.Message(MessageHud.MessageType.Center, string.Format(repairMessage.Value, count));
            return(count);
        }