public void Delete() { if (Deleted) { return; } Wipe(); Deleted = true; var dr = DefaultRegion; if (dr != null) { dr.Unregister(); DefaultRegion = null; } if (Maps.InBounds(MapIndex) && Maps[MapIndex] == this) { Maps[MapIndex] = null; } if (AllMaps.Remove(this)) { UpdateMaps(); } Instances.Maps.Remove(Serial); }
public virtual void Delete() { if (m_Deleted || !World.OnDelete(this)) { return; } AllMaps.Remove(this); EjectPlayers(); OnDelete(); m_Deleted = true; World.RemoveMap(this); OnAfterDelete(); }
public static void PurgeLayerMapDeep(LayerMap target, bool topLevel) { foreach (Layer layer in target.Layers) { LayerManager.DeleteLayerByID(layer.ID, false, false); } target.Layers.Clear(); foreach (string key in target.ChildMaps.Keys) { LayerMap map = target.ChildMaps[key]; PurgeLayerMapDeep(map, false); } target.ChildMaps.Clear(); if (topLevel) { if (!String.IsNullOrEmpty(target.Frame.Parent)) { if (AllMaps.ContainsKey(target.Frame.Parent)) { AllMaps[target.Frame.Parent].ChildMaps.Remove(target.Name); } } else { if (LayerMaps.ContainsKey(target.Name)) { LayerMaps.Remove(target.Name); } } } AllMaps.Remove(target.Name); version++; }