public override void OnAfterDelete() { #region Mondain's Legacy if ( m_Region != null ) { NoHousingItem houseItem = new NoHousingItem( this ); houseItem.MoveToWorld( m_Region.GoLocation, m_Region.Map ); } #endregion base.OnAfterDelete(); if ( m_Owner != null ) { List<BaseHouse> list = null; m_Table.TryGetValue( m_Owner, out list ); if ( list == null ) m_Table[m_Owner] = list = new List<BaseHouse>(); list.Remove( this ); } if ( m_Region != null ) { m_Region.Unregister(); m_Region = null; } if ( m_Sign != null ) m_Sign.Delete(); if ( m_Trash != null ) m_Trash.Delete(); if ( m_Doors != null ) { for ( int i = 0; i < m_Doors.Count; ++i ) { Item item = (Item)m_Doors[i]; if ( item != null ) item.Delete(); } m_Doors.Clear(); } if ( m_LockDowns != null ) { for ( int i = 0; i < m_LockDowns.Count; ++i ) { Item item = (Item)m_LockDowns[i]; if ( item != null ) { item.IsLockedDown = false; item.IsSecure = false; item.Movable = true; item.SetLastMoved(); } } m_LockDowns.Clear(); } if ( VendorRentalContracts != null ) { for ( int i = 0; i < VendorRentalContracts.Count; ++i ) { Item item = (Item)VendorRentalContracts[i]; if ( item != null ) { item.IsLockedDown = false; item.IsSecure = false; item.Movable = true; item.SetLastMoved(); } } VendorRentalContracts.Clear(); } if ( m_Secures != null ) { for ( int i = 0; i < m_Secures.Count; ++i ) { SecureInfo info = (SecureInfo)m_Secures[i]; if ( info.Item is StrongBox ) { info.Item.Destroy(); } else { info.Item.IsLockedDown = false; info.Item.IsSecure = false; info.Item.Movable = true; info.Item.SetLastMoved(); } } m_Secures.Clear(); } if ( m_Addons != null ) { for ( int i = 0; i < m_Addons.Count; ++i ) { Item item = (Item)m_Addons[i]; if ( item != null ) { if( !item.Deleted && item is IAddon ) { Item deed = ((IAddon)item).Deed; bool retainDeedHue = false; //if the items aren't hued but the deed itself is int hue = 0; if( item is BaseAddon && ((BaseAddon)item).RetainDeedHue ) //There are things that are IAddon which aren't BaseAddon { BaseAddon ba = (BaseAddon)item; retainDeedHue = true; for( int j = 0; hue == 0 && j < ba.Components.Count; ++j ) { AddonComponent c = ba.Components[j]; if( c.Hue != 0 ) hue = c.Hue; } } if( deed != null ) { if( retainDeedHue ) deed.Hue = hue; deed.MoveToWorld( item.Location, item.Map ); } } item.Delete(); } } m_Addons.Clear(); } ArrayList inventories = new ArrayList( VendorInventories ); foreach ( VendorInventory inventory in inventories ) inventory.Delete(); if ( MovingCrate != null ) MovingCrate.Delete(); KillVendors(); m_AllHouses.Remove( this ); }
public NoHousingDelayTimer(NoHousingItem item, TimeSpan delay) : base(delay) { m_Item = item; Priority = TimerPriority.OneMinute; }
public NoHousingDelayTimer(NoHousingItem item) : this(item, DefaultDelay) { }
public NoHousingDelayTimer(NoHousingItem item, TimeSpan delay) : base(delay) { this.m_Item = item; this.Priority = TimerPriority.OneMinute; }