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); }
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); }
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); }