CultivationOfBrewing-2/Assets/Scripts/Project/UI/UI_Panel/UI_ToolAndMaterialPanel.cs

143 lines
4.9 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UI_ToolAndMaterialPanel : BasePanel
{
private Dictionary<string, List<ItemInfo>> bagDatas;
public RectTransform _content;
/// <summary>
///prefab
/// </summary>
public UI_ToolOrMaterialsOrDeviceItem ui_TmdItem;
public List<Toggle> toggles = new List<Toggle>();
public override void ShowMe()
{
base.ShowMe();
for (int i = 0; i < toggles.Count; i++)
{
int index = i;
toggles[index].onValueChanged.AddListener(ison => { MyChangeToggle(toggles[index].name, ison); });
}
GameManager.EventMgr.EventTrigger<bool>(Enum_EventType.PlayerCanMove, false);
CreatItem(E_ToolOrDeviceOrMaterials.Tool); //默认打开显示工器具
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
{
//GetControl<Button>("closeBtn").gameObject.SetActive(false);
GameManager.EventMgr.AddEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
Debug.Log("注册高亮 UI_ToolAndMaterialPanel");
//手动高亮
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.subProcessStepTriggerID);
}
}
private void SwitchSubProcessStepTriggerID(string arg0)
{
Debug.Log("高亮: "+ arg0);
string objname = "";
if (arg0 == "背包工具按钮")
objname = "toolTog";
else if (arg0 == "背包设备按钮")
objname = "deviceTog";
else if (arg0 == "背包材料按钮")
objname = "materialsTog";
else
return;
toggles.ForEach(t =>
{
if(t.name== objname)
{
GameManager.UIMgr.imageTips.ShowTips(t.transform.GetComponent<RectTransform>());
t.interactable = true;
Debug.Log("按钮高亮:" + objname);
}
else
{
//GameManager.UIMgr.imageTips.HideTips();
t.interactable = false;
}
});
}
public override void HideMe()
{
base.HideMe();
GameManager.EventMgr.EventTrigger<bool>(Enum_EventType.PlayerCanMove, true);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.RemoveEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
}
private void CreatItem(E_ToolOrDeviceOrMaterials tmdTpye)
{
if (_content.transform.childCount > 0)
{
for (int i = 0; i < _content.transform.childCount; i++)
{
Destroy(_content.transform.GetChild(i).gameObject);
}
}
bagDatas = GameManager.PacksackBagMgr.GetItemsByE_TMDType(tmdTpye);
var wearInfo = PacksackBagMgr.Instance.wearDic;
foreach (var item in bagDatas.Keys)
{
if (!wearInfo.ContainsKey(item))
{
UI_ToolOrMaterialsOrDeviceItem uiTMDitem = Instantiate(ui_TmdItem, _content);
uiTMDitem.Init(bagDatas[item]);
}
}
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.subProcessStepTriggerID);
}
public void MyChangeToggle(string toogleName, bool isOn)
{
if (isOn)
{
string triggername = "";
if (toogleName == "toolTog")
triggername = "背包工具按钮";
else if (toogleName == "deviceTog")
triggername = "背包设备按钮";
else if (toogleName == "materialsTog")
triggername = "背包材料按钮";
else
return;
if (GameManager.ProcessMgr == null || GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(triggername, true) == 0)
{
switch (toogleName)
{
case "toolTog":
CreatItem(E_ToolOrDeviceOrMaterials.Tool);
break;
case "deviceTog":
CreatItem(E_ToolOrDeviceOrMaterials.Device);
break;
case "materialsTog":
CreatItem(E_ToolOrDeviceOrMaterials.Materials);
break;
default:
break;
}
}
}
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "closeBtn":
GameManager.UIMgr.HidePanel<UI_ToolAndMaterialPanel>();
break;
default:
break;
}
}
}