| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- /****************************************************************************
- * 2024.7 LXD
- ****************************************************************************/
- using System.Collections;
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using QFramework;
- using I2.Loc;
- using DG.Tweening;
- using UniRx.Triggers;
- using UnityEngine.EventSystems;
- namespace QFramework
- {
- public partial class ToolItemPrefab : UIElement
- {
- public GameObject m_NormalState;
- public GameObject m_HighterState;
- public GameObject m_SelectState;
- public GameObject m_PromptState;
- public ToolConfigInfo m_ToolConfigInfo;
- private BtnState m_CurrentBtnState;
- private ToolConfigProxy m_ToolConfigProxy;
- private void Start()
- {
- GetComponent<Button>().onClick.AddListener(OnToolButtonClick);
- }
- public void SetData(ToolConfigInfo toolConfigInfo)
- {
- m_ToolConfigInfo = toolConfigInfo;
- m_ToolConfigProxy = DAL.Instance.Get<ToolConfigProxy>();
- switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
- {
- case ToolLibraryType.ToolRoom:
- if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(toolConfigInfo.id)) != null) SetButtonState(BtnState.select);
- else SetButtonState(BtnState.normal);
- break;
- case ToolLibraryType.ToolKit:
- if (m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(toolConfigInfo.id))!= null) SetButtonState(BtnState.select);
- else SetButtonState(BtnState.normal);
- break;
- default:
- break;
- }
- SetToolIcon();
- ToolName.text = toolConfigInfo.toolName;
- #region 多语言
- if (LocalizationConfig.localization && LocalizationManager.CurrentLanguage == "English")
- {
- ToolName.text = toolConfigInfo.en_toolName;
- }
- #endregion
- switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
- {
- case ToolLibraryType.ToolRoom:
- //如果已经选择
- if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(m_ToolConfigInfo.id)) != null)
- {
- SetButtonState(BtnState.select);
- }
- break;
- case ToolLibraryType.ToolKit:
- //如果已经选择
- if (m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id)) != null)
- {
- SetButtonState(BtnState.select);
- }
- break;
- default:
- break;
- }
- //如果打开提示
- if (OperateSetting.Instance.ToolPackUILogic.GetHint())
- {
- if (GetIsNeedHighter() && m_CurrentBtnState != BtnState.select)
- {
- ShowHighter(true);
- }
- }
- }
- /// <summary>
- /// 工具点击
- /// </summary>
- public void OnToolButtonClick()
- {
- ToolLibraryForm toolLibraryForm = UIKit.GetPanel<ToolLibraryForm>();
- toolLibraryForm?.ToolMessageElement.ShowToolInfo(m_ToolConfigInfo);
- switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
- {
- case ToolLibraryType.ToolRoom:
- if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(m_ToolConfigInfo.id)) != null)
- {
- if (GetIsNeedHighter())
- {
- ShowHighter(true);
- }
- m_ToolConfigProxy.RemoveToolConfigInfoFromCTRSTCIsById(int.Parse(m_ToolConfigInfo.id));
- SetButtonState(BtnState.normal);
- }
- else
- {
- ToolConfigInfo tmpToolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoById(int.Parse(m_ToolConfigInfo.id));
- m_ToolConfigProxy.AddToolConfigInfoToCTRSTCIs(tmpToolConfigInfo);
- SetButtonState(BtnState.select);
- }
- break;
- case ToolLibraryType.ToolKit:
- if (m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id)) != null)
- {
- m_ToolConfigProxy.RemoveToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id));
- SetButtonState(BtnState.normal);
- }
- else
- {
- ToolConfigInfo tmpToolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoById(int.Parse(m_ToolConfigInfo.id));
- m_ToolConfigProxy.AddToolConfigInfoToCTKSTCIs(tmpToolConfigInfo);
- SetButtonState(BtnState.select);
- }
- break;
- default:
- break;
- }
- //if (m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id)) != null)
- //{
- // if (OperateSetting.Instance.ToolPackUILogic.GetHint())
- // {
- // if (GetIsNeedHighter())
- // {
- // ShowHighter(true);
- // }
- // }
- //}
- //else
- //{
- // m_ToolConfigProxy.AddToolConfigInfoToCTKSTCIs(m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id)));
- // if (OperateSetting.Instance.ToolPackUILogic.GetHint())
- // {
- // ShowHighter(false);
- // }
- // SetButtonState(BtnState.select);
- //}
- }
- public void SetShowToolInfo()
- {
- ToolLibraryForm toolLibraryForm = UIKit.GetPanel<ToolLibraryForm>();
- toolLibraryForm?.ToolMessageElement.ShowToolInfo(m_ToolConfigInfo);
- }
- /// <summary>
- /// 设置工具Icon
- /// </summary>
- private void SetToolIcon()
- {
- ToolIcon.sprite = m_ToolConfigProxy.GetSpriteByToolName(m_ToolConfigInfo.toolName);
- }
- public void OnPointEnter()
- {
- if (SelectState.gameObject.activeSelf) return;
- SetButtonState(BtnState.highter);
- }
- public void OnPointExit()
- {
- if (SelectState.gameObject.activeSelf) return;
- SetButtonState(BtnState.normal);
- }
- public void SetButtonState(BtnState btnState)
- {
- switch (btnState)
- {
- case BtnState.normal:
- NormalState.gameObject.SetActive(true);
- SelectState.gameObject.SetActive(false);
- HighterState.gameObject.SetActive(false);
- break;
- case BtnState.highter:
- NormalState.gameObject.SetActive(false);
- SelectState.gameObject.SetActive(false);
- HighterState.gameObject.SetActive(true);
- break;
- case BtnState.select:
- NormalState.gameObject.SetActive(false);
- SelectState.gameObject.SetActive(true);
- HighterState.gameObject.SetActive(false);
- break;
- default:
- break;
- }
- m_CurrentBtnState = btnState;
- }
- public void ShowHighter(bool highter, Action callBack = null)
- {
- if (highter)
- {
- PromptIcon.gameObject.SetActive(true);
- PromptIcon.rectTransform.DOSizeDelta(new Vector2(201, 220), 1).SetLoops(-1, LoopType.Yoyo);
- }
- else
- {
- PromptIcon.gameObject.SetActive(false);
- PromptIcon.rectTransform.sizeDelta = new Vector2(193, 213);
- PromptIcon.rectTransform.DOKill();
- }
- }
- private bool GetIsNeedHighter()
- {
- ToolLibraryForm tmpToolLibraryForm = UIKit.GetPanel<ToolLibraryForm>();
- return tmpToolLibraryForm.ToolLibrarySelectElement.ToolItemIsNeedShowHighter(m_ToolConfigInfo.id);
- }
- IEnumerator IEShowHighter(Action callBack = null)
- {
- while (true)
- {
- yield return new WaitForSeconds(0.5f);
- SetButtonState(BtnState.highter);
- yield return new WaitForSeconds(0.5f);
- SetButtonState(BtnState.normal);
- callBack?.Invoke();
- }
- }
- }
- }
|