Beispiel #1
0
        // View Updates
        private IEnumerable <IEncounterable> SearchDatabase()
        {
            var settings = GetSearchSettings();
            var moves    = settings.Moves.ToArray();

            // If nothing is specified, instead of just returning all possible encounters, just return nothing.
            if (settings.Species <= 0 && moves.Length == 0)
            {
                return(Array.Empty <IEncounterable>());
            }
            var pk = SAV.BlankPKM;

            var species  = settings.Species <= 0 ? Enumerable.Range(1, SAV.MaxSpeciesID) : new[] { settings.Species };
            var versions = settings.GetVersions(SAV);
            var results  = species.SelectMany(z => GetEncounters(z, moves, pk, versions));

            if (settings.SearchEgg != null)
            {
                results = results.Where(z => z.EggEncounter == settings.SearchEgg);
            }

            // return filtered results
            var comparer = new ReferenceComparer <IEncounterable>();

            results = results.Distinct(comparer); // only distinct objects

            // when all sprites in new size are available, remove this filter
            results = SAV is SAV8SWSH
                ? results.Where(z => ((PersonalInfoSWSH)PersonalTable.SWSH.GetFormeEntry(z.Species, z.Form)).IsPresentInGame)
                : results.Where(z => z.Generation <= 7);

            return(results);
        }
Beispiel #2
0
        // View Updates
        private IEnumerable <IEncounterable> SearchDatabase()
        {
            var settings = GetSearchSettings();

            var moves = settings.Moves.ToArray();
            var pk    = SAV.BlankPKM;

            var species  = settings.Species <= 0 ? Enumerable.Range(1, SAV.MaxSpeciesID) : new[] { settings.Species };
            var versions = settings.GetVersions(SAV);
            var results  = species.SelectMany(z => GetEncounters(z, moves, pk, versions));

            if (settings.SearchEgg != null)
            {
                results = results.Where(z => z.EggEncounter == settings.SearchEgg);
            }

            // return filtered results
            var comparer = new ReferenceComparer <IEncounterable>();

            results = results.Distinct(comparer); // only distinct objects

            // when PK7->PK8 conversion is possible (and sprites in new size are available, remove this filter)
            results = SAV is SAV8SWSH
                ? results.Where(z => !(z is IGeneration g) || g.Generation == 8)
                : results.Where(z => !(z is IGeneration g) || g.Generation <= 7);

            return(results);
        }
        /// <summary>
        /// Determine walls in linked file intersecting pipe
        /// </summary>
        public void GetWalls(UIDocument uidoc)
        {
            Document doc = uidoc.Document;

            Reference pipeRef = uidoc.Selection.PickObject(
                ObjectType.Element);

            Element pipeElem = doc.GetElement(pipeRef);

            LocationCurve lc    = pipeElem.Location as LocationCurve;
            Curve         curve = lc.Curve;

            ReferenceComparer reference1 = new ReferenceComparer();

            ElementFilter filter = new ElementCategoryFilter(
                BuiltInCategory.OST_Walls);

            FilteredElementCollector collector
                = new FilteredElementCollector(doc);

            Func <View3D, bool> isNotTemplate = v3 => !(v3.IsTemplate);
            View3D view3D = collector
                            .OfClass(typeof(View3D))
                            .Cast <View3D>()
                            .First <View3D>(isNotTemplate);

            ReferenceIntersector refIntersector
                = new ReferenceIntersector(
                      filter, FindReferenceTarget.Element, view3D);

            refIntersector.FindReferencesInRevitLinks = true;
            IList <ReferenceWithContext> referenceWithContext
                = refIntersector.Find(
                      curve.GetEndPoint(0),
                      (curve as Line).Direction);

            IList <Reference> references
                = referenceWithContext
                  .Select(p => p.GetReference())
                  .Distinct(reference1)
                  .Where(p => p.GlobalPoint.DistanceTo(
                             curve.GetEndPoint(0)) < curve.Length)
                  .ToList();

            IList <Element> walls = new List <Element>();

            foreach (Reference reference in references)
            {
                RevitLinkInstance instance = doc.GetElement(reference)
                                             as RevitLinkInstance;
                Document linkDoc = instance.GetLinkDocument();
                Element  element = linkDoc.GetElement(reference.LinkedElementId);
                walls.Add(element);
            }
            TaskDialog.Show("Count of wall", walls.Count.ToString());
        }
Beispiel #4
0
        private void SortFiles()
        {
            CollectionToArray();
            ReferenceComparer comparer = new ReferenceComparer();

            if (_assemblyReferences != null)
            {
                Array.Sort(_assemblyReferences, comparer);
            }
            if (_fileReferences != null)
            {
                Array.Sort(_fileReferences, comparer);
            }
        }
        public static Node <T> DetectLoop <T>(Node <T> head)
        {
            ReferenceComparer <Node <T> > comparer = new ReferenceComparer <Node <T> >();
            Dictionary <Node <T>, int>    dic      = new Dictionary <Node <T>, int>(comparer);

            while (head != null)
            {
                if (dic.ContainsKey(head))
                {
                    return(head);
                }
                else
                {
                    dic.Add(head, 1);
                }
                head = head.Next;
            }
            return(null);
        }
Beispiel #6
0
        // View Updates
        private IEnumerable <IEncounterable> SearchDatabase()
        {
            var settings = GetSearchSettings();

            var moves = settings.Moves.ToArray();
            var pk    = SAV.BlankPKM;

            var species  = settings.Species <= 0 ? Enumerable.Range(1, SAV.MaxSpeciesID) : new[] { settings.Species };
            var versions = settings.GetVersions(SAV);
            var results  = species.SelectMany(z => GetEncounters(z, moves, pk, versions));

            if (settings.SearchEgg != null)
            {
                results = results.Where(z => z.EggEncounter == settings.SearchEgg);
            }

            // return filtered results
            var comparer = new ReferenceComparer <IEncounterable>();

            return(results.Distinct(comparer)); // only distinct objects
        }
Beispiel #7
0
 public static IList<ReferenceEntity> GetAllReferences(string content, int reportId)
 {
     IList<ReferenceEntity> results = new List<ReferenceEntity>();
     if (content == null)
     {
         return results;
     }
     string pattern = "{(?!IMG-[0-9]*)[^}]+}";
     MatchCollection matches;
     Regex referenceRegex = new Regex(pattern);
     matches = referenceRegex.Matches(content);
     ARTService service = new ARTService();
     foreach (Match match in matches)
     {
         ReferenceEntity reference = service.GetReferenceByShortName(reportId, match.Value.Substring(1, match.Value.Length - 2));
         ReferenceComparer comparer = new ReferenceComparer();
         if (reference != null && reference.ReferenceId != 0 && !results.Contains(reference, comparer))
         {
             results.Add(reference);
         }
     }
     return results;
 }
 static ReferenceComparer()
 {
     Instance = new ReferenceComparer <T> ();
 }
Beispiel #9
0
        public ObjectDumper()
        {
            ReferenceComparer refComparer = new ReferenceComparer();

            this.objects = new Hashtable(refComparer);
        }
 private void SortFiles()
 {
     this.CollectionToArray();
     ReferenceComparer comparer = new ReferenceComparer();
     if (this.assemblyReferences != null)
     {
         Array.Sort(this.assemblyReferences, comparer);
     }
     if (this.fileReferences != null)
     {
         Array.Sort(this.fileReferences, comparer);
     }
 }
Beispiel #11
0
 private void SortFiles()
 {
     CollectionToArray();
     ReferenceComparer comparer = new ReferenceComparer();
     if (_assemblyReferences != null)
         Array.Sort(_assemblyReferences, comparer);
     if (_fileReferences != null)
         Array.Sort(_fileReferences, comparer);
 }