152 lines
5.2 KiB
C#
152 lines
5.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using MotionFramework;
|
|
using TMPro;
|
|
using Unity.VisualScripting;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
namespace ToolsPack
|
|
{
|
|
/// <summary>
|
|
/// 背包按钮组件
|
|
/// </summary>
|
|
public class ToolsPackWindowItemBtComponent : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
|
|
{
|
|
[SerializeField] private RawImage ico;
|
|
[SerializeField] private GameObject closeBt;
|
|
[SerializeField] private string btName;
|
|
[SerializeField] private int index;
|
|
[SerializeField] private int gameNumber;
|
|
[SerializeField] private string btNameText;
|
|
[SerializeField] private ModelTypeEnum _modelTypeEnum;
|
|
[SerializeField] private TMP_Text numberText;
|
|
|
|
|
|
[SerializeField] private Sprite defaultSprite;
|
|
[SerializeField] private Sprite clickSprite;
|
|
[SerializeField] private Image btImage;
|
|
|
|
[SerializeField] private string clickName;
|
|
|
|
[SerializeField] private Dictionary<int, string> _toolsPackWindowItemBtModels;
|
|
|
|
private void Awake()
|
|
{
|
|
btImage = this.GetComponent<Image>();
|
|
gameNumber = 1;
|
|
_toolsPackWindowItemBtModels = new Dictionary<int, string>();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
closeBt.GetComponent<Button>().onClick.AddListener(delegate
|
|
{
|
|
index = _toolsPackWindowItemBtModels.Count - 1;
|
|
btName = _toolsPackWindowItemBtModels[_toolsPackWindowItemBtModels.Count - 1];
|
|
|
|
|
|
GameObject toolsGame = MotionEngine.GetModule<ToolsPackManager>().GetToolsPack(btName, index);
|
|
toolsGame.SetActive(true);
|
|
MotionEngine.GetModule<ToolsPackManager>().DeleteToolsPack(btName, index);
|
|
MotionEngine.GetModule<ToolsPackManager>().DeleteToolsPackWindowItemBts(btName, index);
|
|
});
|
|
|
|
|
|
this.GetComponent<Button>().onClick.AddListener(delegate
|
|
{
|
|
MotionEngine.GetModule<ToolsPackManager>().OnTriggerStringEvent(clickName);
|
|
index = _toolsPackWindowItemBtModels.Count - 1;
|
|
btName = _toolsPackWindowItemBtModels[_toolsPackWindowItemBtModels.Count - 1];
|
|
switch (_modelTypeEnum)
|
|
{
|
|
case ModelTypeEnum.工具:
|
|
break;
|
|
case ModelTypeEnum.设备:
|
|
MotionEngine.GetModule<ToolsPackManager>().DeleteStringToolsPack(btName, index);
|
|
MotionEngine.GetModule<ToolsPackManager>().DeleteToolsPackWindowItemBts(btName, index);
|
|
break;
|
|
}
|
|
|
|
MotionEngine.GetModule<ToolsPackManager>().GetToolsPackWindowTemp().SetActive(false);
|
|
});
|
|
}
|
|
|
|
public void Init(string gName, string btName, int index, ModelTypeEnum modelTypeEnum)
|
|
{
|
|
btNameText = gName;
|
|
clickName= btName;
|
|
// this.index = index;
|
|
_modelTypeEnum = modelTypeEnum;
|
|
ico.texture = MotionEngine.GetModule<ToolsPackManager>().GetToolsPackWindowBtImage(gName);
|
|
numberText.text = $"x{gameNumber.ToString()}";
|
|
|
|
_toolsPackWindowItemBtModels.Add(index, btName);
|
|
|
|
// if (MotionEngine.GetModule<ToolsPackManager>().GetToolsPackScene() == ToolsPackScene.工具间)
|
|
// {
|
|
// closeBt.SetActive(true);
|
|
// }
|
|
// else
|
|
// {
|
|
// closeBt.SetActive(false);
|
|
// }
|
|
}
|
|
|
|
public void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
// btNameText.gameObject.SetActive(true);
|
|
btImage.sprite = clickSprite;
|
|
|
|
if (MotionEngine.GetModule<ToolsPackManager>().GetToolsPackScene() == ToolsPackScene.工具间)
|
|
{
|
|
closeBt.SetActive(true);
|
|
}
|
|
}
|
|
|
|
public void OnPointerExit(PointerEventData eventData)
|
|
{
|
|
// btNameText.gameObject.SetActive(false);
|
|
btImage.sprite = defaultSprite;
|
|
if (MotionEngine.GetModule<ToolsPackManager>().GetToolsPackScene() == ToolsPackScene.工具间)
|
|
{
|
|
closeBt.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public int GetIndex()
|
|
{
|
|
return _toolsPackWindowItemBtModels.Count - 1;
|
|
}
|
|
|
|
|
|
public int GetGameNumber()
|
|
{
|
|
return gameNumber;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加物体堆叠数
|
|
/// </summary>
|
|
/// <param name="btName"></param>
|
|
/// <param name="index"></param>
|
|
public void AddGameNumber(string btName, int index)
|
|
{
|
|
gameNumber++;
|
|
numberText.text = $"x{gameNumber.ToString()}";
|
|
_toolsPackWindowItemBtModels.Add(index, btName);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 减去堆叠数
|
|
/// </summary>
|
|
public void ReduceGameNumber()
|
|
{
|
|
string na = this.gameObject.name;
|
|
gameNumber--;
|
|
numberText.text = $"x{gameNumber.ToString()}";
|
|
_toolsPackWindowItemBtModels.Remove(_toolsPackWindowItemBtModels.Count - 1);
|
|
}
|
|
}
|
|
} |