Ejemplo n.º 1
0
        private void HandleLobbyChatMessage(LobbyChatMessageData data)
        {
            string errorMessage;

            if (CommandParser == null || !CommandParser.TryCallCommand(data.message, false, out errorMessage))
            {
                var isNewMessage = data.sender.userData.id.m_SteamID != SteamUser.GetSteamID().m_SteamID;
                var prototype    = isNewMessage ? othersMessagePrototype : selfMessagePrototype;
                var go           = Instantiate(prototype, collection);
                var msg          = go.GetComponent <ILobbyChatMessage>();
                msg.RegisterChatMessage(data);

                messages.Add(go);

                Canvas.ForceUpdateCanvases();
                if (messages.Count > maxMessages)
                {
                    var firstLine = messages[0];
                    messages.Remove(firstLine);
                    Destroy(firstLine.gameObject);
                }
                Canvas.ForceUpdateCanvases();
                scrollRect.verticalNormalizedPosition = 0f;

                if (isNewMessage)
                {
                    NewMessageRecieved.Invoke();
                }
            }
        }
Ejemplo n.º 2
0
        public void RegisterChatMessage(LobbyChatMessageData data)
        {
            this.data = data;

            PersonaButton.gameObject.SetActive(true);
            PersonaButton.LinkSteamUser(data.sender.userData);
            Message.text      = data.message;
            timeStamp         = data.recievedTime;
            timeRecieved.text = timeStamp.ToString(timeFormat);

            if (ShowStamp && AllwaysShowStamp)
            {
                timeRecieved.gameObject.SetActive(true);
            }
            else
            {
                timeRecieved.gameObject.SetActive(false);
            }
            siblingIndex = selfTransform.GetSiblingIndex();
            UpdatePersonaIconShow();
            processing = true;
        }