private void ReceiveEmote(Message message)
        {
            // Parse out the emote info to load from the repo to make sure the emote is loaded before we try to play it.
            XmlDocument emoteDoc = new XmlDocument();

            emoteDoc.LoadXml((string)message.Data[0]);
            XmlNode         emoteNode = emoteDoc.SelectSingleNode("Asset");
            ClientAssetInfo emoteInfo = new ClientAssetInfo(emoteNode);

            GameFacade.Instance.RetrieveProxy <ClientAssetRepository>().GetAsset <RigAnimationAsset>(emoteInfo, delegate(RigAnimationAsset rigAnimationAsset)
            {
                if (this.StateMachine.CurrentState is DefaultForeignAvatarState)
                {
                    DefaultForeignAvatarState state = (DefaultForeignAvatarState)this.StateMachine.CurrentState;
                    state.PlayEmote(rigAnimationAsset.AnimationName.ToString());
                }
            });
        }