Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public virtual void Delete()
        {
            if (m_Deleted || !World.OnDelete(this))
            {
                return;
            }

            AllMaps.Remove(this);

            EjectPlayers();

            OnDelete();

            m_Deleted = true;
            World.RemoveMap(this);

            OnAfterDelete();
        }
Esempio n. 3
0
        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++;
        }