using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
using UnityEngine.EventSystems;
using System.Collections;
using System;
public class UI_MenuBar : BasePanel
{
[SerializeField]
private Sprite ExpandSprite, CollapseSprite;
[HideInInspector]
public Button closeDefaultBtn, toolRoomBtn, siteBtn, workOrderBtn, missionBtn, officeBtn, disassemblyAssemblyWorkOrderBtn, toolKitBtn, notifyBtn, faultRegBtn, InspectionRecordFormBtn, TerminalTestFormBtn;//添加
public int countDown = 0;
private int time;
public RectTransform menuBar;
[Header("工作票按钮")]
public string workOrderName;
[Header("拆装工单按钮")]
public string disassemblyAssemblyWorkOrderName;
[Header("背包按钮")]
public string toolKitName;
[Header("现场按钮")]
public string siteName;
[Header("办公室按钮")]
public string officeName;
[Header("工具间按钮")]
public string toolRoomName;
[Header("告知单按钮")]
public string notifyName;
[Header("故障记录表按钮")]
public string faultRegName;
[Header("校验记录单")]
public string inspectionRecordFormName;
[Header("终端测试")]
public string terminalTestFormBtn;
///
/// 记录倒计时的协程
///
private Coroutine coroutine;
public void Init()
{
//coroutine = GameManager.MonoMgr.StartCoroutine(CountDown(countDown));
//MenuBarIamge = GetControl("MenuBar");
closeDefaultBtn = GetControl("CloseDefaultBtn");
toolRoomBtn = GetControl("ToolRoomBtn");
siteBtn = GetControl("SiteBtn");
workOrderBtn = GetControl("WorkOrderBtn");
missionBtn = GetControl("MissionBtn");
officeBtn = GetControl("OfficeBtn");
toolKitBtn = GetControl("ToolKitBtn");
disassemblyAssemblyWorkOrderBtn = GetControl("DisassemblyAssemblyWorkOrderBtn");
notifyBtn = GetControl("NotifyBtn");
faultRegBtn = GetControl("FaultRegBtn");
InspectionRecordFormBtn = GetControl("InspectionRecordFormBtn");
TerminalTestFormBtn = GetControl("TerminalTestFormBtn");
if (GameManager.RunModelMgr.ModeType == E_ModeType.Practice)
OpenMenu();
}
public override void ShowMe()
{
GameManager.EventMgr.EventTrigger(Enum_EventType.EnterSceneInitialDisplayTaskUI);
GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchScene, CheckBtnBySceneName);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
else
GameManager.EventMgr.AddEventListener(Enum_EventType.TakeOutAndRetrievingTheTools, TakeOutAndRetrievingTheTools);
}
public void TakeOutAndRetrievingTheTools(GameObject obj)
{
toolKitBtn.interactable = (obj == null);
}
private void SwitchSubProcessStepTriggerID(string triggerID)
{
bool isOpen = false;
if (triggerID == workOrderName)
{
GameManager.UIMgr.imageTips.ShowTips(workOrderBtn.GetComponent());
isOpen = true;
}
else if (triggerID == disassemblyAssemblyWorkOrderName)
{
GameManager.UIMgr.imageTips.ShowTips(disassemblyAssemblyWorkOrderBtn.GetComponent());
isOpen = true;
}
else if (triggerID == toolKitName)
{
GameManager.UIMgr.imageTips.ShowTips(toolKitBtn.GetComponent());
isOpen = true;
}
else if (triggerID == siteName)
{
GameManager.UIMgr.imageTips.ShowTips(siteBtn.GetComponent());
isOpen = true;
}
else if (triggerID == officeName)
{
GameManager.UIMgr.imageTips.ShowTips(officeBtn.GetComponent());
isOpen = true;
}
else if (triggerID == toolRoomName)
{
GameManager.UIMgr.imageTips.ShowTips(toolRoomBtn.GetComponent());
isOpen = true;
}
else if (triggerID == notifyName)
{
GameManager.UIMgr.imageTips.ShowTips(notifyBtn.GetComponent());
isOpen = true;
}
else if (triggerID == faultRegName)//HQB 错误登记表
{
GameManager.UIMgr.imageTips.ShowTips(faultRegBtn.GetComponent());
isOpen = true;
}
else if (triggerID == inspectionRecordFormName)//HQB 错误登记表
{
GameManager.UIMgr.imageTips.ShowTips(InspectionRecordFormBtn.GetComponent());
isOpen = true;
}
else if (triggerID == terminalTestFormBtn)//终端测试按钮
{
GameManager.UIMgr.imageTips.ShowTips(TerminalTestFormBtn.GetComponent());
isOpen = true;
}
else
{
GameManager.UIMgr.imageTips.HideTips();
isOpen = false;
}
if (isOpen)
{
OpenMenu();
}
else
{
CloseMenu();
}
}
public override void HideMe()
{
GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchScene, CheckBtnBySceneName);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
else
GameManager.EventMgr.RemoveEventListener(Enum_EventType.TakeOutAndRetrievingTheTools, TakeOutAndRetrievingTheTools);
}
public void CheckBtnBySceneName(E_SceneType type)
{
//Debug.Log(type.ToString());
//CloseMenu();
toolRoomBtn.gameObject.SetActive(false);//.SetActive(type != E_SceneType.ToolRoom);
siteBtn.gameObject.SetActive(false);//.SetActive(type == E_SceneType.ToolRoom);
workOrderBtn.gameObject.SetActive(true);//.SetActive(type == E_SceneType.Office);使用工作票按钮代替测量效果
missionBtn.gameObject.SetActive(true);//.SetActive(type == E_SceneType.Office || type == E_SceneType.ToolRoom || type == E_SceneType.Site);
officeBtn.gameObject.SetActive(false);//.SetActive(type == E_SceneType.ToolRoom);
disassemblyAssemblyWorkOrderBtn.gameObject.SetActive(false);//.SetActive(type == E_SceneType.Office);
toolKitBtn.gameObject.SetActive(true);//.SetActive(type != E_SceneType.Office);
//关闭告知单按钮
notifyBtn.gameObject.SetActive(false);//notifyBtn.gameObject.SetActive(type == E_SceneType.Site);
int t = GameManager.DataMgr.d_System.subjects.Find(subject => subject.id == GameManager.RunModelMgr.schemeID).isFault;
//打开PPT按钮
faultRegBtn.gameObject.SetActive(true);//.SetActive(type == E_SceneType.Site && GameManager.DataMgr.d_System.subjects.Find(subject => subject.id == GameManager.RunModelMgr.schemeID).isFault == 1);
}
///
/// 倒计时
///
/// 倒计时多久
///
private IEnumerator CountDown(int time)
{
this.time = time;
countDown = time;
WaitForSeconds waitForSeconds = new WaitForSeconds(1);
while (countDown > 0)
{
yield return waitForSeconds;
CloseMenu();
}
}
private void OpenMenu()
{
GetControl("CloseDefaultBtn").sprite = CollapseSprite;
menuBar.DOAnchorPosX(0, 0.2f);
}
private void CloseMenu()
{
GetControl("CloseDefaultBtn").sprite = ExpandSprite;
menuBar.DOAnchorPosX(110, 0.2f);
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "CloseDefaultBtn":
if (menuBar.anchoredPosition.x == 0)
{
CloseMenu();
}
else if (menuBar.anchoredPosition.x == 110)
{
OpenMenu();
}
break;
case "OfficeBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(officeName, true) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) =>
{
panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.1f);
GameManager.ScenesMgr.LoadSceneAsyn($"{GameManager.Instance.systemId}_{GameManager.RunModelMgr.schemeID}_03_OfficeScene", () =>
{
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
});
});
}
break;
case "ToolRoomBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(toolRoomName, true) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) =>
{
panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.1f);
GameManager.ScenesMgr.LoadSceneAsyn("04_ToolMaterialScene", () =>
{
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
});
});
}
break;
case "SiteBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(siteName, true) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) =>
{
panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.1f);
//判分
ScoreManager.instance.Check(siteName, null);
GameManager.ScenesMgr.LoadSceneAsyn($"{GameManager.Instance.systemId}_{GameManager.RunModelMgr.schemeID}_05_LiveScene", () =>
{
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
});
});
}
break;
case "WorkOrderBtn"://工作票按钮代测量按钮
RangeFinding rf = OfficeManager.Instance.gameObject.GetComponent();
if (rf != null)
{
rf.enabled = !rf.enabled;
}
//if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(workOrderName, true) == 0)
//{
// if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
// {
// GameManager.MissionMgr.selectedWorkTicketType = WorkTicketType.无;//学习模式重新选
// }
// switch(GameManager.MissionMgr.selectedWorkTicketType)
// {
// case WorkTicketType.无:
// GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) =>
// {
// panel.Init(workOrderName);
// });
// break;
// case WorkTicketType.低压工作票:
// GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid);
// break;
// case WorkTicketType.配电第一种工作票:
// GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid);
// break;
// case WorkTicketType.配电第二种工作票:
// GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid);
// break;
// }
//}
break;
case "MissionBtn":
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (p) =>
{
p.Init();
});
break;
case "DisassemblyAssemblyWorkOrderBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(disassemblyAssemblyWorkOrderName, false) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) =>
{
panel.Init(disassemblyAssemblyWorkOrderName);
});
}
break;
case "ToolKitBtn":
//if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(toolKitName, true) == 0)
//{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid);
//}
break;
case "NotifyBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(notifyName, false) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (p) =>
{
p.Init(notifyName);
});
}
break;
case "FaultRegBtn"://代替PPT
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid);
GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) =>
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Bot, (panel) =>
{
Debug.Log("加载理论学习面板");
//GameManager.UIMgr.HidePanel();
GameManager.UIMgr.HidePanel();
});
});
//if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(faultRegName, false) == 0)
//{
// GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (p) =>
// {
// p.Init(faultRegName);
// });
//}
break;
case "InspectionRecordFormBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(inspectionRecordFormName, false) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (p) =>
{
p.Init(inspectionRecordFormName);
});
}
break;
default:
break;
}
}
}