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;
private Button closeDefaultBtn, toolRoomBtn, siteBtn, workOrderBtn, missionBtn, officeBtn, disassemblyAssemblyWorkOrderBtn, toolKitBtn;
public int countDown = 0;
private int time;
public int workOrderID = 5006;
public int disassemblyAssemblyWorkOrderID = 5007;
///
/// 记录倒计时的协程
///
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");
}
public override void ShowMe()
{
GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchScene, CheckBtnBySceneName);
GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
}
private void SwitchSubProcessStepTriggerID(int triggerID)
{
if (triggerID == workOrderID)
{
Debug.Log("工作单提示");
}
if (triggerID == disassemblyAssemblyWorkOrderID)
{
Debug.Log("拆装工单提示");
}
}
public override void HideMe()
{
GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchScene, CheckBtnBySceneName);
GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
}
public void CheckBtnBySceneName(E_SceneType type)
{
Debug.Log(type.ToString());
if (GetControl("MenuBar").transform.localPosition.x == 960)
{
GetControl("CloseDefaultBtn").sprite = ExpandSprite;
GetControl("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
}
toolRoomBtn.gameObject.SetActive(type != E_SceneType.ToolRoom);
siteBtn.gameObject.SetActive(type == E_SceneType.ToolRoom);
workOrderBtn.gameObject.SetActive(type == E_SceneType.Office || type == E_SceneType.Site);
missionBtn.gameObject.SetActive(type == E_SceneType.Office || type == E_SceneType.ToolRoom || type == E_SceneType.Site);
officeBtn.gameObject.SetActive(type == E_SceneType.ToolRoom);
disassemblyAssemblyWorkOrderBtn.gameObject.SetActive(type == E_SceneType.Office);
toolKitBtn.gameObject.SetActive(type != E_SceneType.Office);
}
///
/// 倒计时
///
/// 倒计时多久
///
private IEnumerator CountDown(int time)
{
this.time = time;
countDown = time;
WaitForSeconds waitForSeconds = new WaitForSeconds(1);
while (countDown > 0)
{
yield return waitForSeconds;
GetControl("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
}
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "CloseDefaultBtn":
GetControl("MenuBar").transform.DOLocalMoveX(960, 0.5f);
GetControl("CloseDefaultBtn").sprite = CollapseSprite;
if (GetControl("MenuBar").transform.localPosition.x == 960)
{
GetControl("CloseDefaultBtn").sprite = ExpandSprite;
GetControl("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
}
break;
case "ToolRoomBtn":
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);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersId[0]);
});
});
break;
case "SiteBtn":
GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) =>
{
panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.1f);
GameManager.ScenesMgr.LoadSceneAsyn("05_LiveScene", () =>
{
GameManager.EventMgr.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersId[0]);
});
});
break;
case "WorkOrderBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(workOrderID, false) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) =>
{
panel.Init(workOrderID);
});
}
break;
case "WorkTicketBtn":
break;
case "DisassemblyAssemblyWorkOrderBtn":
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(disassemblyAssemblyWorkOrderID, false) == 0)
{
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) =>
{
panel.Init(disassemblyAssemblyWorkOrderID);
});
}
break;
case "ToolKitBtn":
GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (p) =>
{
});
break;
default:
break;
}
}
}