Esempio n. 1
0
        protected override OptionResult RunAll(List <IMiniSimDescription> sims)
        {
            List <IMiniSimDescription> allSims = new List <IMiniSimDescription>(sims);

            Dictionary <ulong, List <IMiniSimDescription> > lookup = new Dictionary <ulong, List <IMiniSimDescription> >();

            foreach (IMiniSimDescription sim in sims)
            {
                SimListing.AddSim(sim, lookup);
            }

            int index = 0;

            while (index < allSims.Count)
            {
                IMiniSimDescription miniSim = allSims[index];
                index++;

                Genealogy genealogy = miniSim.CASGenealogy as Genealogy;
                if (genealogy == null)
                {
                    continue;
                }

                if (genealogy.Spouse != null)
                {
                    IMiniSimDescription spouseSim = genealogy.Spouse.IMiniSimDescription;
                    if (spouseSim == null)
                    {
                        continue;
                    }

                    if (SimListing.AddSim(spouseSim, lookup))
                    {
                        allSims.Add(spouseSim);
                    }
                }

                foreach (Genealogy parent in genealogy.Parents)
                {
                    IMiniSimDescription parentSim = parent.IMiniSimDescription;
                    if (parentSim == null)
                    {
                        continue;
                    }

                    if (SimListing.AddSim(parentSim, lookup))
                    {
                        allSims.Add(parentSim);
                    }
                }

                foreach (Genealogy sibling in genealogy.Siblings)
                {
                    IMiniSimDescription siblingSim = sibling.IMiniSimDescription;
                    if (siblingSim == null)
                    {
                        continue;
                    }

                    if (SimListing.AddSim(siblingSim, lookup))
                    {
                        allSims.Add(siblingSim);
                    }
                }

                foreach (Genealogy child in genealogy.Children)
                {
                    IMiniSimDescription childSim = child.IMiniSimDescription;
                    if (childSim == null)
                    {
                        continue;
                    }

                    if (SimListing.AddSim(childSim, lookup))
                    {
                        allSims.Add(childSim);
                    }
                }
            }

            return(NRaas.MasterControllerSpace.Town.DumpGenealogy.Perform(lookup));
        }