public override void OnDoubleClick(Mobile m)
        {
            if (!m.InRange(this, 2))
            {
                m.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                return;
            }

            if (RaisableItem != null && RaisableItem.Deleted)
            {
                RaisableItem = null;
            }

            Flip();

            if (RaisableItem != null)
            {
                if (RaisableItem.IsRaisable)
                {
                    RaisableItem.Raise();
                    m.LocalOverheadMessage(MessageType.Regular, 0x5A, true, "You hear a grinding noise echoing in the distance.");
                }
                else
                {
                    m.LocalOverheadMessage(MessageType.Regular, 0x5A, true, "You flip the switch again, but nothing happens.");
                }
            }
        }
            public RaiseTimer(RaisableItem item) : base(TimeSpan.Zero, TimeSpan.FromSeconds(0.5))
            {
                m_Item      = item;
                m_CloseTime = DateTime.UtcNow + item.CloseDelay;
                m_Up        = true;

                Priority = TimerPriority.TenMS;
            }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadEncodedInt();

            m_RaisableItem = (RaisableItem)reader.ReadItem();

            Reset();
        }