Server.Items.BaseDoor.EventSink_OpenDoorMacroUsed C# (CSharp) Method

EventSink_OpenDoorMacroUsed() private static method

private static EventSink_OpenDoorMacroUsed ( OpenDoorMacroEventArgs args ) : void
args OpenDoorMacroEventArgs
return void
		private static void EventSink_OpenDoorMacroUsed( OpenDoorMacroEventArgs args )
		{
			Mobile m = args.Mobile;

			if ( m.Map != null )
			{
				int x = m.X, y = m.Y;

				switch ( m.Direction & Direction.Mask )
				{
					case Direction.North:      --y; break;
					case Direction.Right: ++x; --y; break;
					case Direction.East:  ++x;      break;
					case Direction.Down:  ++x; ++y; break;
					case Direction.South:      ++y; break;
					case Direction.Left:  --x; ++y; break;
					case Direction.West:  --x;      break;
					case Direction.Up:    --x; --y; break;
				}

				Sector sector = m.Map.GetSector( x, y );

				foreach ( Item item in sector.Items )
				{
					if ( item.Location.X == x && item.Location.Y == y && (item.Z + item.ItemData.Height) > m.Z && (m.Z + 16) > item.Z && item is BaseDoor && m.CanSee( item ) && m.InLOS( item ) )
					{
						if ( m.CheckAlive() )
						{
							m.SendLocalizedMessage( 500024 ); // Opening door...
							item.OnDoubleClick( m );
						}

						break;
					}
				}
			}
		}