using System; using System.Collections.Generic; using UnityEngine; using WI; using static MQTT; namespace CHN { public class Canvas_Popup : CanvasBase { public Panel_CompleteAlramHistory panel_completealramhistory; public Panel_Menu panel_menu; public Panel_DashBoard panel_dashboard; public Panel_Library panel_library; public Panel_WorkConditionAnalysis panel_workconditionanalysis; public Panel_WorkTimeAnalysis panel_worktimeanalysis; public Panel_InjectionProduction panel_injectionproduction; public Panel_AssemblyProduction panel_assemblyproduction; public Panel_WorkProgressStatus panel_workprogressstatus; public Panel_MiniMap panel_minimap; //public Panel_MachineDashBoard panel_machinedashboard; public RectTransform dashboardPoint; private Dictionary machineDashboardTable = new(); public Action onClickSimple; public Action onClickDetail; public Action> simpleView; public Panel_MachineDashBoard currentDashBoard; public Action onOpenDashboard; private float multiply = 1.1f; public override void AfterAwake() { var asset = Resources.Load("Prefabs/UI/PRF_Panel_MachineDashBoard"); var machines = FindObjectsOfType(); foreach (var machine in machines) { var dashboard = Instantiate(asset, transform); dashboard.Close(); dashboard.simpleView += simpleView; machineDashboardTable.Add(machine, dashboard); dashboard.onClickSimple += onClickSimple; dashboard.onClickDetail += onClickDetail; } } public void MachineDashBoardOpenFromLibrary(UI_LibraryButton libraryButton) { if (currentDashBoard != null) { currentDashBoard.SetActive(false); } var machine = libraryButton.machine; currentDashBoard = machineDashboardTable[machine]; currentDashBoard.OpenFromLibraryButton(libraryButton); SetDashBoardPosition(); onOpenDashboard?.Invoke(); } public void MachineDashBoardOpenFromOnClick(Machine clickMachine) { if (currentDashBoard != null) { currentDashBoard.SetActive(false); } currentDashBoard = machineDashboardTable[clickMachine]; currentDashBoard.OpenFromMachineClick(clickMachine); SetDashBoardPosition(); onOpenDashboard?.Invoke(); } public void MachineDashBoardClose(UI_LibraryButton button) { var machine = button.machine; machineDashboardTable[machine].Close(); } public void SimpleView(Machine machine, SimpleField data) { machineDashboardTable[machine].SimpleInfoView(data); } public void DetailView(Machine machine, SimpleField data) { machineDashboardTable[machine].DetailInfoView(data); } public void CurrentDashoboardClose() { if (currentDashBoard != null) { currentDashBoard.Clear(); currentDashBoard.SetActive(false); } } public void SetDashBoardPosition() { currentDashBoard.transform.position = dashboardPoint.transform.position; currentDashBoard.transform.SetAsLastSibling(); } public Panel_ControlSetting panel_controlsetting; public Panel_ProtocolSetting panel_protocolsetting; } }