123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /****************************************************************************
- * 2021.10 DESKTOP-PBQ45G2
- ****************************************************************************/
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using QFramework;
- namespace QFramework
- {
- public enum ToolStatus
- {
- Normal,
- Select,
- Hint
- }
- public delegate void ToolElementEventHandle(object sender, ToolElement e);
- public partial class ToolElement : UIElement
- {
- private ToolStatus mtoolStatus;
- public ToolStatus M_ToolStatus
- {
- get
- {
- return mtoolStatus;
- }
- set
- {
- if (mtoolStatus != value)
- {
- mtoolStatus = value;
- OnToolStatusChanged();
- }
- }
- }
- public ToolElementEventHandle ToolSelectStatusChanged;
- private Image toolBtnImg;
- public Sprite toolBtnNormailSprite;
- public Sprite toolBtnHighlightSprite;
- public Sprite toolBtnSelectSprite;
- public Sprite toolBtnHintSprite;
- private bool isHintTool = false;
- public bool IsHintTool
- {
- get { return isHintTool; }
- set
- {
- if (isHintTool != value)
- {
- isHintTool = value;
- if (isHintTool)
- {
- if (M_ToolStatus == ToolStatus.Select) return;
- M_ToolStatus = ToolStatus.Hint;
- }
- else if (M_ToolStatus == ToolStatus.Hint)
- {
- M_ToolStatus = ToolStatus.Normal;
- }
- }
- }
- }
- private ToolConfig toolConfig;
- private void Awake()
- {
- toolBtnImg = ToolBtn.GetComponent<Image>();
- ToolBtn.onClick.AddListener(() =>
- {
- ToolBtnClick();
- });
- }
- private void ToolBtnClick()
- {
- if (M_ToolStatus != ToolStatus.Select)
- {
- M_ToolStatus = ToolStatus.Select;
- }
- else if (isHintTool)
- {
- M_ToolStatus = ToolStatus.Hint;
- }
- else
- {
- M_ToolStatus = ToolStatus.Normal;
- }
- if (toolConfig.changedCursor)
- {
- Cursor.SetCursor(M_ToolStatus == ToolStatus.Select ? toolConfig.cursor : null, Vector2.zero, CursorMode.Auto);
- }
- }
- /// <summary>
- /// 놓迦뺏묏야토零
- /// </summary>
- /// <param name="config"></param>
- public void InitConfig(ToolConfig config)
- {
- toolConfig = config;
- ToolImg.sprite = toolConfig.toolImg;
- if (toolConfig.toolImg == null)
- {
- ToolName.text = toolConfig.toolName;
- }
- else
- {
- ToolName.text = toolConfig.toolImg.name;
- }
- }
- /// <summary>
- /// 헌뇜묏야토零
- /// </summary>
- public void ClearConfig()
- {
- ClearState();
- toolConfig = null;
- }
- /// <summary>
- /// 헌뇜객큐榴檄
- /// </summary>
- public void ClearState()
- {
- IsHintTool = false;
- M_ToolStatus = ToolStatus.Normal;
- if (toolConfig.changedCursor)
- {
- Cursor.SetCursor(M_ToolStatus == ToolStatus.Select ? toolConfig.cursor : null, Vector2.zero, CursorMode.Auto);
- }
- }
- private void OnToolStatusChanged()
- {
- switch (mtoolStatus)
- {
- case ToolStatus.Normal:
- toolBtnImg.sprite = toolBtnNormailSprite;
- break;
- case ToolStatus.Select:
- toolBtnImg.sprite = toolBtnSelectSprite;
- break;
- case ToolStatus.Hint:
- toolBtnImg.sprite = toolBtnHintSprite;
- break;
- }
- ToolSelectStatusChanged?.Invoke(this, this);
- }
- }
- }
|