using EnhancedUI.EnhancedScroller;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
using Snxxz.UI;
|
namespace EnhancedUI.EnhancedScroller
|
{
|
public class ChatPlayerOtherCell : ScrollerUI
|
{
|
[SerializeField] Image m_ChatIcon;
|
[SerializeField] Text m_VipLv;
|
[SerializeField] Text m_PlayerName;
|
[SerializeField] Text m_ChatTime;
|
[SerializeField] ChatBubbleBehaviour m_ChatBubble;
|
[SerializeField] Button m_Func;
|
[SerializeField] float spacing = 5.0f;
|
|
ChatCenter m_ChatCenter;
|
ChatCenter chatCenter
|
{
|
get
|
{
|
return m_ChatCenter ?? (m_ChatCenter = ModelCenter.Instance.GetModel<ChatCenter>());
|
}
|
}
|
public override void Refresh(CellView cell)
|
{
|
var data = chatCenter.GetChatData(ChatCtrl.Inst.presentChatType, cell.index);
|
if (data == null)
|
{
|
return;
|
}
|
var chatUserData = data as ChatUeseData;
|
m_Func.onClick.RemoveAllListeners();
|
m_Func.onClick.AddListener(() =>
|
{
|
OnFunc(cell);
|
});
|
m_ChatIcon.SetSprite(GeneralDefine.GetJobHeadPortrait(chatUserData.job, 0));
|
m_PlayerName.text = chatUserData.name;
|
m_ChatTime.text = data.createTime.ToString("yyyy-MM-dd HH:mm");
|
if (chatUserData.vipLv > 0)
|
{
|
m_VipLv.text = "VIP";//string.Format("V{0}", chatUserData.vipLv);
|
}
|
else
|
{
|
m_VipLv.text = string.Empty;
|
}
|
m_ChatBubble.DisplayContent(data.content, true);
|
m_ChatBubble.DisplayBubble(chatUserData.bubbleId);
|
}
|
|
private void OnFunc(CellView cell)
|
{
|
int index = cell.index;
|
ChatData _data = chatCenter.GetChatData(ChatCtrl.Inst.presentChatType, index);
|
if (_data == null)
|
{
|
return;
|
}
|
ChatUeseData user = _data as ChatUeseData;
|
if (user.player == PlayerDatas.Instance.baseData.PlayerID)
|
{
|
return;
|
}
|
if (user.serverGroupId == 0 || user.serverGroupId == PlayerDatas.Instance.baseData.ServerGroupId)
|
{
|
PlayerDetails.ShowPlayerDetails(user.player, null);
|
}
|
else
|
{
|
PlayerDetails.ShowCrossServerChatPlayer(user);
|
}
|
}
|
|
public float GetHeight(string content, ArrayList list)
|
{
|
var minHeight = m_ChatIcon.rectTransform.sizeDelta.y;
|
var chatHeight = m_ChatBubble.GetBubbleHeight(content, list) + Mathf.Abs(m_ChatBubble.transform.localPosition.y);
|
return (chatHeight > minHeight ? chatHeight : minHeight) + spacing;
|
}
|
}
|
}
|