public virtual bool Begin() { if ( !RaiseBeginningEvent( this ) ) return false; UndoState = Player.DrawBegin( this ); StartTime = DateTime.UtcNow; HasBegun = true; Map.QueueDrawOp( this ); RaiseBeganEvent( this ); return true; }