Files
RedHotRoast-ios/Assets/Scripts/ModuleUI/PersonView/PersonViewUI.cs
T
2026-04-22 09:52:55 +08:00

169 lines
4.0 KiB
C#

using System;
using FairyGUI;
using FGUI.P01_Common;
using FGUI.P04_Menu;
// using FGUI.G006_menu;
using UnityEngine;
namespace FlowerPower
{
public class PersonViewUI : BaseUI
{
private PersonViewUICtrl ctrl;
private PersonViewModel model;
private int selectIndex = -1;
private int total_item;
private FGUI.P04_Menu.com_person ui;
public PersonViewUI(PersonViewUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.MenuUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "P04_Menu";
uiInfo.assetName = "com_person";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
#region
protected override void OnInit()
{
model = moduleManager.GetModel(ModelConst.PersonViewModel) as PersonViewModel;
}
protected override void OnClose()
{
CommonHelper.FadeOut(ui);
}
protected override void OnBind()
{
ui = baseUI as FGUI.P04_Menu.com_person;
}
protected override void OnOpenBefore(object args)
{
// if (Screen.safeArea.y != 0)
// {
// ui.title.y += Screen.safeArea.y;
// }
total_item = 8;
selectIndex = PreferencesMgr.Instance.PlayerAvatarId;
InitView();
}
protected override void OnOpen(object args)
{
// CommonHelper.FadeIn(ui);
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
protected override void AddListener()
{
HallManager.Instance.AddChangeGiftSwitch(InitView);
}
protected override void RemoveListener()
{
HallManager.Instance.RemoveChangeGiftSwitch(InitView);
}
#endregion
private void InitView()
{
var namStr = GameHelper.GetUserName();
ui.edit_name.input.text = namStr;
ui.btn_update.SetClick(UpdateUserInfo);
ui.edit_name.btn_amend.SetClick(SaveName);
ui.btn_close.SetClick(CtrlCloseUI);
ui.list.itemRenderer = UpdateItem;
ui.list.numItems = total_item;
}
private void UpdateItem(int index, GObject items)
{
var currentIndex = index + 1;
var head = items as btn_item_head;
var imgHead = head.head as btn_head;
TextureHelper.SetAvatarToLoader(currentIndex, imgHead.load_avatar);
head.head_select.selectedIndex = selectIndex == currentIndex
? btn_item_head.Head_select_select
: btn_item_head.Head_select_none;
head.SetClick(() =>
{
selectIndex = currentIndex;
ui.list.numItems = total_item;
});
}
private void UpdateUserInfo()
{
if (selectIndex != -1)
{
PreferencesMgr.Instance.PlayerAvatarId = selectIndex;
}
SaveName();
CtrlCloseUI();
}
private void SaveName()
{
var name = ui.edit_name.input.text;
if (string.IsNullOrEmpty(name) || name.IsNullOrWhiteSpace())
{
GameHelper.ShowTips("The input cannot be null", true);
return;
}
// if (name.Equals(GameHelper.GetPlayerInviteCode()))
// {
// return;
// }
if (name.Equals(PreferencesMgr.Instance.PlayerName)) return;
GameHelper.ShowTips($"Name changed successfully");
PreferencesMgr.Instance.PlayerName = name;
}
}
}