public void ReleaseElement(MapElement mapElement)
 {
     if (AdoptedElements.Contains(mapElement))
     {
         AdoptedElements.Remove(mapElement);
         OrphanElements.Add(mapElement);
     }
 }
        public bool AdoptElement(MapElement mapElement)
        {
            if (OrphanElements.Contains(mapElement))
            {
                AdoptedElements.Add(mapElement);
                OrphanElements.Remove(mapElement);
                return(true);
            }

            return(false);
        }
示例#3
0
 public void ReleaseElement(MapElement mapElement)
 {
     if (AdoptedElements.Contains(mapElement))
     {
         AdoptedElements.Remove(mapElement);
         if (mapElement.Conditions == null || ConditionChecker.check(mapElement.Conditions))
         {
             OrphanElements.Add(mapElement);
         }
     }
 }
        protected override IEnumerator UnLoadRoutine(Tile tile, Action <bool> finished)
        {
            var allElements = MapSceneMB.MapElements;

            foreach (var elem in allElements)
            {
                if (OrphanElements.Contains(elem))
                {
                    OrphanElements.Remove(elem);
                }
            }

            finished(true);

            yield return(null);
        }
        protected override IEnumerator CreateRoutine(Tile tile, Action <bool> finished)
        {
            var allElements = MapSceneMB.MapElements;

            foreach (var elem in allElements)
            {
                if (!AdoptedElements.Contains(elem) && !OrphanElements.Contains(elem))
                {
                    OrphanElements.Add(elem);
                }
            }

            finished(true);

            yield return(null);
        }
示例#6
0
        protected override IEnumerator UnLoadRoutine(Tile tile, Action <bool> finished)
        {
            var notExisting = MapSceneMB.MapElements.FindAll(elem => elem.Conditions != null && !ConditionChecker.check(elem.Conditions));

            foreach (var elem in notExisting)
            {
                if (OrphanElements.Contains(elem))
                {
                    OrphanElements.Remove(elem);
                }
            }

            finished(true);

            yield return(null);
        }
        protected override IEnumerator CreateRoutine(Tile tile, Action <bool> finished)
        {
            var allElements = MapSceneMB.MapElements.FindAll(elem => elem.Conditions == null || ConditionChecker.check(elem.Conditions))
                              .Where(tc => !tc.IsRemoved());

            foreach (var elem in allElements)
            {
                if (!AdoptedElements.Contains(elem) && !OrphanElements.Contains(elem))
                {
                    OrphanElements.Add(elem);
                }
            }

            finished(true);

            yield return(null);
        }