using UnityEngine;
using UnityEngine.UI;
using QFramework;
using System.Collections.Generic;
using I2.Loc;
using System;
namespace QFramework
{
public enum ToolLibraryType
{
///
/// 工具间
///
ToolRoom,
///
/// 工具包
///
ToolKit
}
public class ToolLibraryFormData : UIPanelData
{
///
/// 开启的工具库类型
///
public ToolLibraryType toolLibraryType = ToolLibraryType.ToolRoom;
///
/// 正常情况下不用使用该回调,这是为ToolLibrarySelectElement单加的模式
///
public Action selectAction;
}
public partial class ToolLibraryForm : UIPanel
{
public List m_Sprites = new List();
public ToolConfigProxy m_ToolConfigProxy;
protected override void OnInit(IUIData uiData = null)
{
mData = uiData as ToolLibraryFormData ?? new ToolLibraryFormData();
m_ToolConfigProxy = DAL.Instance.Get();
CloseBtn.onClick.AddListener(OnCloseBtnClick);
ToolLibrarySelectElement.InitData();
ToolLibrarySelectElement.TitleText.text = ScriptLocalization.tooltype.all;
m_ToolConfigProxy.m_CurrentToolLibraryType = mData.toolLibraryType;
CloseBtn.gameObject.SetActive(mData.selectAction == null);
}
protected override void OnOpen(IUIData uiData = null)
{
mData = uiData as ToolLibraryFormData ?? new ToolLibraryFormData();
switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
{
case ToolLibraryType.ToolRoom:
m_ToolConfigProxy.m_TmpToolRoomConfigInfos = m_ToolConfigProxy.GetAllToolConfigInfoFromCTRSTCIs();
ToolLibrarySelectElement.OpenToolRoomUI();
break;
case ToolLibraryType.ToolKit:
ToolLibrarySelectElement.OpenToolKitUI();
break;
default:
break;
}
ToolTypeElement.RefrushTypeBtn();
transform.transform.SetAsLastSibling();
}
protected override void OnShow()
{
//工具包
if (mData.toolLibraryType == ToolLibraryType.ToolKit)
{
}
else if (mData.toolLibraryType == ToolLibraryType.ToolRoom)
{
ToolLibrarySelectElement.ShowUI();
//刷新工具列表为全部
ToolTypeElement.RefrushTypeBtn();
transform.transform.SetAsLastSibling();
}
}
protected override void OnHide()
{
}
protected override void OnClose()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
OnCloseBtnClick();
}
if (Input.GetKeyDown(KeyCode.Return))
{
Debug.Log("ClickEnter");
OnConfirmBtnClick();
}
if (Input.GetKeyDown(KeyCode.Delete))
{
ToolLibrarySelectElement.OnClearBtnClick();
}
}
///
/// 关闭工具库
///
public void OnCloseBtnClick()
{
switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
{
case ToolLibraryType.ToolRoom:
break;
case ToolLibraryType.ToolKit:
m_ToolConfigProxy.ClearToolConfigInfoToCTKSTCIs();
foreach (var item in m_ToolConfigProxy.GetAllToolConfigInfos())
{
foreach (var selectTool in OperateSetting.Instance.m_ToolKitToolConfigs)
{
if (selectTool.toolName == item.toolName)
{
ToolConfigInfo tmpToolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoByToolName(item.toolName);
m_ToolConfigProxy.AddToolConfigInfoToCTKSTCIs(tmpToolConfigInfo);
}
}
}
break;
default:
break;
}
UIKit.ClosePanel();
}
///
/// 确认提交所选工具
///
public void OnConfirmBtnClick()
{
switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
{
case ToolLibraryType.ToolRoom:
m_ToolConfigProxy.SetCurrrentToolRoomToolConfigInfos(m_ToolConfigProxy.m_TmpToolRoomConfigInfos);
break;
case ToolLibraryType.ToolKit:
break;
default:
break;
}
List tmpToolConfigs = new List();
foreach (var item in m_ToolConfigProxy.GetAllToolConfigInfoFromCTKSTCIs())
{
if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(item.id)) != null)
{
ToolConfig tmpToolConfig = new ToolConfig();
ToolConfigInfo toolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoById(int.Parse(item.id));
tmpToolConfig.toolName = toolConfigInfo.toolName;
tmpToolConfig.toolImg = m_ToolConfigProxy.GetSpriteByToolName(tmpToolConfig.toolName);
tmpToolConfig.en_toolName = toolConfigInfo.en_toolName;
tmpToolConfig.en_toolType = toolConfigInfo.en_toolType;
tmpToolConfig.en_toolDescription = toolConfigInfo.en_toolDescription;
tmpToolConfigs.Add(tmpToolConfig);
}
}
OperateSetting.Instance.m_ToolKitToolConfigs = tmpToolConfigs;
UIKit.OpenPanel(new ToolDisplayFormData() { m_ToolConfigs = tmpToolConfigs });
if (mData.selectAction != null)
{
mData.selectAction?.Invoke();
}else
{
UIKit.ClosePanel();
}
}
public void RefrushAllChoseTool()
{
m_ToolConfigProxy.ClearToolConfigInfoToCTKSTCIs();
OperateSetting.Instance.m_ToolKitToolConfigs.Clear();
UIKit.OpenPanel(new ToolDisplayFormData() { m_ToolConfigs = null });
}
}
}