Exemple #1
0
        private List <Square3x3> GetSquaresToFilth(List <Child> children)
        {
            if (children.Count == 0)
            {
                return(null);
            }
            List <Square3x3> temp    = new List <Square3x3>();
            List <Square3x3> result  = new List <Square3x3>();
            List <Child>     already = new List <Child>();

            foreach (Child kid in children)
            {
                Child max = kid;
                foreach (Child mate in kid.radius.childrenInside)
                {
                    if (mate.radius.childrenCount > max.radius.childrenCount)
                    {
                        max = mate;
                    }
                }
                temp.Add(max.radius);
            }
            foreach (Square3x3 sq in temp)
            {
                Square3x3 tempsq = Square3x3.Copy(sq);
                tempsq.childrenCount = 0;
                for (int i = 0; i < sq.childrenInside.Count; i++)
                {
                    if (!already.Contains(sq.childrenInside[i]))
                    {
                        already.Add(sq.childrenInside[i]);
                        tempsq.AddChildren(sq.childrenInside[i]);
                    }
                }
                if (tempsq.childrenCount > 0)
                {
                    tempsq.SetCellsToFilthCount();
                    result.Add(tempsq);
                }
            }
            return(result);
        }
Exemple #2
0
        private void GenerateFilth(List <Square3x3> squares)
        {
            if (squares == null)
            {
                return;
            }
            int filthadded = 0;

            foreach (Square3x3 sq in squares)
            {
                List <AmbientCell> tofilth = Square3x3.GetCellsToFilth(sq, this);
                if (tofilth == null)
                {
                    continue;
                }
                foreach (AmbientCell cell in tofilth)
                {
                    cell.elementInside = new Filth(cell);
                    filthadded++;
                }
            }
            UpdateFilth(filthadded);
        }