备份CatanBuilding瘦身独立工程
This commit is contained in:
166
Assets/Scripts/UI/Social/ClubHeadPopupPanel.cs
Normal file
166
Assets/Scripts/UI/Social/ClubHeadPopupPanel.cs
Normal file
@@ -0,0 +1,166 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using game;
|
||||
using GameCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ClubHeadPopupPanel : MonoBehaviour
|
||||
{
|
||||
public Action<string> OnChange;
|
||||
Button btn_close;
|
||||
Button btn_mask;
|
||||
Button btn_save;
|
||||
ClubHead club_head;
|
||||
TMP_Text text_title;
|
||||
Transform iconContent;
|
||||
Transform frameContent;
|
||||
GameObject iconItem;
|
||||
GameObject frameItem;
|
||||
string iconUrl;
|
||||
string frameUrl;
|
||||
List<GameObject> iconSelecteds = new List<GameObject>();
|
||||
List<GameObject> frameSelecteds = new List<GameObject>();
|
||||
IUIService uIService;
|
||||
List<ClubAvatar> avatars;
|
||||
List<ClubFrame> frames;
|
||||
int iconIndex;
|
||||
int frameIndex;
|
||||
private void Awake()
|
||||
{
|
||||
uIService = GContext.container.Resolve<IUIService>();
|
||||
btn_close = transform.Find("btn_close").GetComponent<Button>();
|
||||
btn_mask = transform.Find("mask").GetComponent<Button>();
|
||||
btn_save = transform.Find("root/btn_save/btn_green").GetComponent<Button>();
|
||||
club_head = transform.Find("root/btn_head").GetComponent<ClubHead>();
|
||||
text_title = transform.Find("root/text_title").GetComponent<TMP_Text>();
|
||||
iconContent = transform.Find("root/ScrollView1/Viewport/Content");
|
||||
frameContent = transform.Find("root/ScrollView2/Viewport/Content");
|
||||
iconItem = transform.Find("root/ScrollView1/Viewport/Content/icon").gameObject;
|
||||
frameItem = transform.Find("root/ScrollView2/Viewport/Content/frame").gameObject;
|
||||
iconItem.SetActive(false);
|
||||
frameItem.SetActive(false);
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
btn_close.onClick.AddListener(OnClose);
|
||||
btn_mask.onClick.AddListener(OnClose);
|
||||
btn_save.onClick.AddListener(OnClickSave);
|
||||
int id = GContext.container.Resolve<Tables>().TbGlobalConfig.ClubInitAvatar;
|
||||
int frameId = GContext.container.Resolve<Tables>().TbGlobalConfig.ClubInitFrame;
|
||||
iconUrl = GContext.container.Resolve<Tables>().TbClubAvatar[id].Avatar;
|
||||
frameUrl = GContext.container.Resolve<Tables>().TbClubFrame[frameId].Frame;
|
||||
if (GContext.container.Resolve<ClubService>().IsClubJoined())
|
||||
{
|
||||
var curGroupSettingData = GContext.container.Resolve<ClubService>().myClubInfo.clubSettingData;
|
||||
text_title.text = LocalizationMgr.GetText("UI_ClubCreatePopupPanel_8");
|
||||
if (curGroupSettingData != null && !string.IsNullOrEmpty(curGroupSettingData.icon))
|
||||
{
|
||||
var icon = curGroupSettingData.icon.Split('#');
|
||||
iconUrl = icon[0];
|
||||
frameUrl = icon[1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
text_title.text = LocalizationMgr.GetText("UI_ClubCreatePopupPanel_1");
|
||||
}
|
||||
SetScrollView();
|
||||
club_head.SetIcon(iconUrl);
|
||||
club_head.SetFrame(frameUrl);
|
||||
|
||||
}
|
||||
void SetScrollView()
|
||||
{
|
||||
avatars = GContext.container.Resolve<Tables>().TbClubAvatar.DataList;
|
||||
frames = GContext.container.Resolve<Tables>().TbClubFrame.DataList;
|
||||
Image image;
|
||||
GameObject select;
|
||||
ClubAvatar avatar;
|
||||
for (int i = 0; i < avatars.Count; i++)
|
||||
{
|
||||
int ii = i;
|
||||
avatar = avatars[i];
|
||||
var item = Instantiate(iconItem, iconContent);
|
||||
item.SetActive(true);
|
||||
image = item.transform.Find("icon").GetComponent<Image>();
|
||||
uIService.SetImageSprite(image, avatar.Avatar);
|
||||
select = item.transform.Find("selected").gameObject;
|
||||
select.SetActive(avatar.Avatar == iconUrl);
|
||||
if (avatar.Avatar == iconUrl)
|
||||
{
|
||||
iconIndex = ii;
|
||||
}
|
||||
iconSelecteds.Add(select);
|
||||
item.GetComponent<Button>().onClick.AddListener(() =>
|
||||
{
|
||||
ChangeIcon(ii);
|
||||
});
|
||||
}
|
||||
ClubFrame frame;
|
||||
for (int i = 0; i < frames.Count; i++)
|
||||
{
|
||||
int ii = i;
|
||||
frame = frames[i];
|
||||
var item = Instantiate(frameItem, frameContent);
|
||||
item.SetActive(true);
|
||||
image = item.transform.Find("icon").GetComponent<Image>();
|
||||
uIService.SetImageSprite(image, frame.Frame);
|
||||
select = item.transform.Find("selected").gameObject;
|
||||
select.SetActive(frame.Frame == frameUrl);
|
||||
if (frame.Frame == frameUrl)
|
||||
{
|
||||
frameIndex = ii;
|
||||
}
|
||||
frameSelecteds.Add(select);
|
||||
item.GetComponent<Button>().onClick.AddListener(() =>
|
||||
{
|
||||
ChangeFrame(ii);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
void ChangeIcon(int index)
|
||||
{
|
||||
iconSelecteds[iconIndex].SetActive(false);
|
||||
iconIndex = index;
|
||||
iconSelecteds[iconIndex].SetActive(true);
|
||||
iconUrl = avatars[index].Avatar;
|
||||
club_head.SetIcon(iconUrl);
|
||||
}
|
||||
void ChangeFrame(int index)
|
||||
{
|
||||
frameSelecteds[frameIndex].SetActive(false);
|
||||
frameIndex = index;
|
||||
frameSelecteds[frameIndex].SetActive(true);
|
||||
frameUrl = frames[index].Frame;
|
||||
club_head.SetFrame(frameUrl);
|
||||
}
|
||||
async void OnClickSave()
|
||||
{
|
||||
btn_save.enabled = false;
|
||||
string newAvatar = $"{iconUrl}#{frameUrl}";
|
||||
OnChange?.Invoke(newAvatar);
|
||||
OnClose();
|
||||
if (GContext.container.Resolve<ClubService>().IsClubJoined())
|
||||
{
|
||||
ClubSettingData groupSettingData = GContext.container.Resolve<ClubService>().myClubInfo.clubSettingData;
|
||||
if (newAvatar != groupSettingData.icon)
|
||||
{
|
||||
groupSettingData.icon = newAvatar;
|
||||
bool result = await GContext.container.Resolve<ClubService>().UpdateClub(groupSettingData);
|
||||
if (result)
|
||||
{
|
||||
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_39"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void OnClose()
|
||||
{
|
||||
UIManager.Instance.DestroyUI(UITypes.ClubHeadPopupPanel);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user