Exemplo n.º 1
0
        public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
        {
            using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet())
            {
                if (occurrence is UnityAssetOccurrence assetOccurrence && !assetOccurrence.SourceFile.GetLocation().IsAsset())
                {
                    using (ReadLockCookie.Create())
                    {
                        var solution  = occurrence.GetSolution();
                        var processor = solution.GetComponent <AssetHierarchyProcessor>();
                        var consumer  = new UnityScenePathGameObjectConsumer();
                        processor.ProcessSceneHierarchyFromComponentToRoot(assetOccurrence.OwningElementLocation, consumer, true, true);
                        string name = "...";
                        if (consumer.NameParts.Count > 0)
                        {
                            name = string.Join("\\", consumer.NameParts);
                        }

                        return(CreateModel(name));
                    }
                }
            }

            return(EmptyModel());
        }
Exemplo n.º 2
0
        public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
        {
            using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet())
            {
                if (occurrence is ReferenceOccurrence referenceOccurrence &&
                    referenceOccurrence.PrimaryReference is IUnityYamlReference reference)
                {
                    var document   = reference.ComponentDocument;
                    var sourceFile = document.GetSourceFile();
                    if (sourceFile == null || !sourceFile.IsValid())
                    {
                        return(EmptyModel());
                    }

                    var anchor = UnitySceneDataUtil.GetAnchorFromBuffer(document.GetTextAsBuffer());
                    if (anchor == null)
                    {
                        return(EmptyModel());
                    }

                    return(CreateModel(UnityObjectPsiUtil.GetGameObjectPathFromComponent(myUnitySceneDataLocalCache, sourceFile, anchor)));
                }
            }

            return(EmptyModel());
        }
 public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
 {
     if (occurrence is ReferenceOccurrence referenceOccurrence &&
         referenceOccurrence.PrimaryReference is IUnityYamlReference reference)
     {
         return(CreateModel(UnityObjectPsiUtil.GetGameObjectPathFromComponent(mySceneProcessor, reference.ComponentDocument)));
     }
     return(EmptyModel());
 }
Exemplo n.º 4
0
 public override ICollection <TreeSection> GetTreeSections([NotNull] IOccurrenceBrowserDescriptor descriptor)
 {
     return(descriptor.OccurrenceSections.Select(
                x =>
     {
         var caption = $"Found {x.Items.Count} linked {NounUtil.ToPluralOrSingular("type", x.Items.Count)}";
         return new TreeSection(x.Model, caption);
     })
            .ToList());
 }
        public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
        {
            if (!(occurrence is UnityAnimationEventOccurence animationEventOccurence))
            {
                return(EmptyModel());
            }
            var text = animationEventOccurence.GetDisplayText()?.Text;

            return(text != null?CreateModel(text) : EmptyModel());
        }
Exemplo n.º 6
0
        public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
        {
            using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet())
            {
                if (occurrence is ReferenceOccurrence referenceOccurrence &&
                    referenceOccurrence.PrimaryReference is IUnityYamlReference reference)
                {
                    return(CreateModel(UnityObjectPsiUtil.GetComponentName(reference.ComponentDocument)));
                }
            }

            return(EmptyModel());
        }
Exemplo n.º 7
0
        public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor)
        {
            using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet())
            {
                if (occurrence is UnityAssetOccurrence assetOccurrence)
                {
                    var hierarchyContainer = assetOccurrence.GetSolution()?.GetComponent <AssetDocumentHierarchyElementContainer>();
                    var element            = hierarchyContainer?.GetHierarchyElement(assetOccurrence.OwningElementLocation, true);
                    if (element is IComponentHierarchy componentHierarchyElement)
                    {
                        return(CreateModel(AssetUtils.GetComponentName(myMetaFileGuidCache, componentHierarchyElement)));
                    }
                }
            }

            return(EmptyModel());
        }
Exemplo n.º 8
0
 public override bool IsApplicable([NotNull] IOccurrenceBrowserDescriptor descriptor)
 {
     return(descriptor is LinkedTypesOccurrenceBrowserDescriptor);
 }
 public abstract RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor);