public bool RemoveRegion(InstanceRegion region, bool unregister) { if (region == null || InstanceRegions == null || !InstanceRegions.Remove(region)) { return(false); } if (unregister) { region.Unregister(); } return(true); }
public void AddRegion(InstanceRegion region, bool register) { if (region == null || region.Deleted || InstanceRegions == null) { return; } InstanceRegions.AddOrReplace(region); if (register) { region.Register(); } }
public void Defragment() { if (Mobiles != null && Mobiles.Count > 0) { Mobiles.RemoveAll(o => o == null || o.Deleted || o.Map != this); } if (Items != null && Items.Count > 0) { Items.RemoveAll(o => o == null || o.Deleted || o.Map != this); } if (InstanceRegions != null && InstanceRegions.Count > 0) { InstanceRegions.RemoveAll(o => o == null || o.Deleted || o.Map != this); } if (BounceInfo != null && BounceInfo.Count > 0) { BounceInfo.RemoveKeyRange(m => m == null || m.Deleted || (m.Map != null && m.Map != Internal && m.Map != this)); BounceInfo.RemoveValueRange(p => p == null || p.InternalOrZero); } }
private void Wipe() { EjectMobiles(); if (Mobiles != null && Mobiles.Count != 0) { Mobiles.RemoveAll(o => o == null || o.Deleted || o.Map != this || o.Player); Mobiles.ForEachReverse(o => o.Delete()); } if (Items != null && Items.Count != 0) { Items.RemoveAll(o => o == null || o.Deleted || o.Map != this || o.RootParent != null); Items.ForEachReverse(o => o.Delete()); } if (InstanceRegions != null && InstanceRegions.Count != 0) { InstanceRegions.RemoveAll(o => o == null || o.Deleted || o.Map != this); InstanceRegions.ForEachReverse(o => o.Delete()); } Defragment(); }