276 lines
8.9 KiB
C#
276 lines
8.9 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using game;
|
|
using GameCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
// using tysdk;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class PlayerHeadPopupPanel : MonoBehaviour
|
|
{
|
|
IUserService userService;
|
|
public Button btn_mask;
|
|
public Button btn_close;
|
|
public Head head;
|
|
public TMP_Text text_name;
|
|
public Button btn_name;
|
|
public Button btn_save;
|
|
public Transform content;
|
|
public GameObject item;
|
|
string url;
|
|
string headUrl;
|
|
int index;
|
|
List<HeadItem> platformHead = new List<HeadItem>();
|
|
List<HeadItem> headItems = new List<HeadItem>();
|
|
List<UserAvatar> userAvatars = new List<UserAvatar>();
|
|
HeadItem headItem_fb;
|
|
|
|
private void Awake()
|
|
{
|
|
userAvatars = GContext.container.Resolve<Tables>().TbUserAvatar.DataList;
|
|
userService = GContext.container.Resolve<IUserService>();
|
|
btn_mask = transform.Find("mask").GetComponent<Button>();
|
|
btn_close = transform.Find("btn_close").GetComponent<Button>();
|
|
head = transform.Find("root/btn_head").GetComponent<Head>();
|
|
text_name = transform.Find("root/btn_head/text_name").GetComponent<TMP_Text>();
|
|
btn_name = transform.Find("root/btn_head/text_name/btn_change").GetComponent<Button>();
|
|
btn_save = transform.Find("root/btn_save/btn_green").GetComponent<Button>();
|
|
content = transform.Find("root/ScrollView1/Viewport/Content/Item/panel_head").GetComponent<Transform>();
|
|
item = transform.Find("root/ScrollView1/Viewport/Content/Item/panel_head/head").gameObject;
|
|
GContext.container.Resolve<GuideDataCenter>().InspectTriggerGuide("PlayerHeadPopupPanel");
|
|
}
|
|
private void Start()
|
|
{
|
|
item.SetActive(false);
|
|
text_name.text = userService.DisplayName;
|
|
url = headUrl = userService.AvatarUrl;
|
|
btn_save.onClick.AddListener(OnClickSave);
|
|
btn_name.onClick.AddListener(OnClickName);
|
|
btn_mask.onClick.AddListener(OnClickClose);
|
|
btn_close.onClick.AddListener(OnClickClose);
|
|
|
|
|
|
index = 0;
|
|
|
|
platformHead = new List<HeadItem>();
|
|
#region facebookAvatar
|
|
if (!ChannelManager.IsRustoreStore)
|
|
{
|
|
SetHeadItemFb();
|
|
}
|
|
#endregion facebookAvatar
|
|
|
|
for (int i = 0; i < userAvatars.Count; i++)
|
|
{
|
|
GameObject gameObject = Instantiate(item, content);
|
|
gameObject.SetActive(true);
|
|
HeadItem headItem = gameObject.AddComponent<HeadItem>();
|
|
headItem.SetSelected(false);
|
|
string avatar = userAvatars[i].Avatar;
|
|
int clickindex = i;
|
|
headItem.onClick = () => { ClickItem(clickindex, avatar); };
|
|
|
|
headItems.Add(headItem);
|
|
if (string.IsNullOrEmpty(headUrl))
|
|
{
|
|
if (userAvatars[i].ID == GContext.container.Resolve<Tables>().TbGlobalConfig.InitAvatar)
|
|
{
|
|
index = i;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (userAvatars[i].Avatar == headUrl)
|
|
{
|
|
index = i;
|
|
}
|
|
}
|
|
}
|
|
if (index >= headItems.Count)
|
|
{
|
|
index = 0;
|
|
}
|
|
if (index >= 0)
|
|
{
|
|
headItems[index].SetSelected(true);
|
|
url = userAvatars[index].Avatar;
|
|
}
|
|
|
|
head.SetData(url);
|
|
for (int i = 0; i < userAvatars.Count; i++)
|
|
{
|
|
headItems[i].SetUrlAsync(userAvatars[i].Avatar);
|
|
}
|
|
}
|
|
void SetHeadItemFb()
|
|
{
|
|
GameObject head_fb = Instantiate(item, content);
|
|
head_fb.SetActive(true);
|
|
headItem_fb = head_fb.AddComponent<HeadItem>();
|
|
headItem_fb.SetSelected(false);
|
|
headItem_fb.SetUrlAsync("sp_avatar_33");
|
|
platformHead.Add(headItem_fb);
|
|
headItem_fb.onClick = OnBtnFacebook;
|
|
|
|
Dictionary<string, string> EAccoutUrl = userService.EAccoutUrl;
|
|
if (EAccoutUrl != null && EAccoutUrl.Count > 0)
|
|
{
|
|
// //平台头像
|
|
// if (EAccoutUrl.TryGetValue(EAccoutType.hwFacebook.ToString(), out string facebookAvatar))
|
|
// {
|
|
// headItem_fb.SetUrlAsync(facebookAvatar);
|
|
// headItem_fb.SetSelected(url == facebookAvatar);
|
|
// if (url == facebookAvatar)
|
|
// {
|
|
// index = -1;
|
|
// }
|
|
// headItem_fb.onClick = () => { ClickItem(-1, facebookAvatar); };
|
|
// headItem_fb.transform.Find("tag_facebook").gameObject.SetActive(true);
|
|
// }
|
|
}
|
|
else
|
|
{
|
|
index = 0;
|
|
}
|
|
}
|
|
async void OnClickName()
|
|
{
|
|
btn_name.enabled = false;
|
|
GameObject panel = await UIManager.Instance.GetUIAsync(UITypes.PlayerNamePopupPanel);
|
|
PlayerNamePopupPanel playerNamePopupPanel = panel.GetComponent<PlayerNamePopupPanel>();
|
|
//playerNamePopupPanel.inputField.text = text_name.text;
|
|
playerNamePopupPanel.Show(text_name);
|
|
btn_name.enabled = true;
|
|
}
|
|
void ClickItem(int _index, string avatar)
|
|
{
|
|
if (index == _index)
|
|
{
|
|
return;
|
|
}
|
|
if (index >= 0)
|
|
{
|
|
headItems[index].SetSelected(false);
|
|
}
|
|
else
|
|
{
|
|
platformHead[-index - 1].SetSelected(false);
|
|
}
|
|
index = _index;
|
|
if (index >= 0)
|
|
{
|
|
headItems[index].SetSelected(true);
|
|
}
|
|
else
|
|
{
|
|
platformHead[-index - 1].SetSelected(true);
|
|
}
|
|
url = avatar;
|
|
head.SetData(url);
|
|
}
|
|
void OnClickSave()
|
|
{
|
|
if (!string.IsNullOrEmpty(url) && headUrl != url)
|
|
{
|
|
userService.UpdateAvatarUrl(url);
|
|
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_13"));
|
|
}
|
|
OnClickClose();
|
|
}
|
|
void OnClickClose()
|
|
{
|
|
UIManager.Instance.DestroyUI(UITypes.PlayerHeadPopupPanel);
|
|
}
|
|
|
|
async void OnBtnFacebook()
|
|
{
|
|
// if (TYSdkFacade.TYAccountInfo != null)
|
|
// {
|
|
// bool isLinkFacebook = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.hwFacebook);
|
|
// if (isLinkFacebook)
|
|
// {
|
|
// return;
|
|
// }
|
|
// }
|
|
// var result = await userService.LinkAccount(EAccoutType.hwFacebook);
|
|
// if (result.code == 0)
|
|
// {
|
|
// PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.hwFacebook.ToString(), "1");
|
|
// Dictionary<string, string> EAccoutUrl = userService.EAccoutUrl;
|
|
// if (EAccoutUrl != null && EAccoutUrl.Count > 0)
|
|
// {
|
|
// if (EAccoutUrl.TryGetValue(EAccoutType.hwFacebook.ToString(), out string facebookAvatar))
|
|
// {
|
|
// headItem_fb.SetUrlAsync(facebookAvatar);
|
|
// headItem_fb.onClick = () => { ClickItem(-1, facebookAvatar); };
|
|
// headItem_fb.transform.Find("tag_facebook").gameObject.SetActive(true);
|
|
// }
|
|
// }
|
|
// GetReward();
|
|
// }
|
|
}
|
|
void GetReward()
|
|
{
|
|
IFootPrintService footPrintService = GContext.container.Resolve<IFootPrintService>();
|
|
if (footPrintService.HasFootPrint(EFootPrint.IsFaceBookRewardLink))
|
|
{
|
|
return;
|
|
}
|
|
footPrintService.UpdateFootPrint(EFootPrint.IsFaceBookRewardLink);
|
|
|
|
int rewardID = GContext.container.Resolve<Tables>().TbGlobalConfig.AccountLinkReward;
|
|
ItemData itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(rewardID);
|
|
GContext.container.Resolve<PlayerItemData>().AddItem(itemData, null);
|
|
GContext.Publish(new ShowData(itemData));
|
|
GContext.Publish(new ShowData());
|
|
GContext.container.Resolve<PlayerShopData>().GetSKUs();
|
|
}
|
|
}
|
|
class HeadItem : MonoBehaviour
|
|
{
|
|
public Image icon_head;
|
|
Button btn_head;
|
|
public GameObject selected;
|
|
GameObject loading;
|
|
public Action onClick;
|
|
private void Awake()
|
|
{
|
|
btn_head = GetComponent<Button>();
|
|
icon_head = transform.Find("mask/icon_head").GetComponent<Image>();
|
|
selected = transform.Find("selected").gameObject;
|
|
loading = transform.Find("loading").gameObject;
|
|
btn_head.onClick.AddListener(OnClick);
|
|
}
|
|
public void SetSelected(bool value)
|
|
{
|
|
selected.SetActive(value);
|
|
}
|
|
void OnClick()
|
|
{
|
|
if (loading.activeSelf)
|
|
{
|
|
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_102"));
|
|
return;
|
|
}
|
|
if (onClick != null)
|
|
{
|
|
onClick();
|
|
}
|
|
}
|
|
public async void SetUrlAsync(string url)
|
|
{
|
|
if (!string.IsNullOrEmpty(url))
|
|
{
|
|
loading.SetActive(true);
|
|
await GContext.container.Resolve<IUIService>().SetHeadImage(icon_head, url);
|
|
if (loading != null)
|
|
{
|
|
loading.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
}
|