using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using WI; namespace CHN { [DefaultExecutionOrder(int.MaxValue)] public class EventConnecter : Initializer { private Building building; private OrbitalController controller; public override void AfterAwake() { building = FindSingle(); controller = FindSingle(); var optionManager = FindSingle(); var libraryManager = FindSingle(); var mqttManager = FindSingle(); var httpManager = FindSingle(); var machineKPIManager = FindSingle(); var completeTimeManager = FindSingle(); var productionStatusManager = FindSingle(); var workConditionsManager = FindSingle(); var workTimeManager = FindSingle(); var topCanvas = FindSingle(); var rightCanvas = FindSingle(); var popupCanvas = FindSingle(); var datamanager = FindSingle(); var raycaster = FindSingle(); topCanvas.panel_toolbar.onClickCameraView += ChangeCameraView; topCanvas.panel_toolbar.onClickDashBoard += popupCanvas.panel_dashboard.Open; topCanvas.panel_toolbar.onClickCustomView += controller.SaveTargetPosition; topCanvas.panel_toolbar.onClickMiniMap += popupCanvas.panel_minimap.SetActive; topCanvas.panel_toolbar.onClickFloorControl += rightCanvas.panel_floorcontrol.SetActive; topCanvas.panel_toptoolbar.GetFloor = building.GetFloor; topCanvas.panel_toptoolbar.onClickAlarms += popupCanvas.panel_completealramhistory.Open; topCanvas.panel_toptoolbar.onClickScreenInitialization += SceneReLoad; topCanvas.panel_toptoolbar.onClickWorkProgress += popupCanvas.panel_workprogressstatus.Open; topCanvas.panel_toptoolbar.onClickProductionProgress += popupCanvas.panel_injectionproduction.Open; topCanvas.panel_toptoolbar.onClickAssemblyProgress += popupCanvas.panel_assemblyproduction.Open; topCanvas.panel_toptoolbar.onClickSetting += popupCanvas.panel_menu.Open; topCanvas.panel_toptoolbar.onClickExit += ExitProgram; rightCanvas.panel_floorcontrol.onValueChanged += building.SetTopFloor; rightCanvas.panel_floorcontrol.onValueChanged += popupCanvas.panel_minimap.ChangeMiniMapFloor; popupCanvas.panel_dashboard.dashBoardCheckListBox.onCloseDashboard += topCanvas.panel_toolbar.SetDashboard; popupCanvas.panel_library.onClickLabelButton += libraryManager.LibraryFiltering; popupCanvas.panel_protocolsetting.onUpdateMachine += libraryManager.MatchingMachine; popupCanvas.panel_library.onClickLibraryButton += popupCanvas.MachineDashBoardOpenFromLibrary; popupCanvas.panel_library.onClickLibraryButton += libraryManager.SetTargetPosToMachine; popupCanvas.panel_library.onClickLibraryButton += libraryManager.ActivateMachinesHighlight; popupCanvas.panel_library.onDeselectLibraryButton += popupCanvas.MachineDashBoardClose; popupCanvas.panel_library.onClose += libraryManager.ResetAllMachinesHighLight; popupCanvas.panel_library.onClickLibraryOpenButton += popupCanvas.panel_dashboard.dashBoardCheckListBox.OnOpenDashboardItem; popupCanvas.panel_library.onClickLibraryCloseButton += popupCanvas.panel_dashboard.dashBoardCheckListBox.OnCloseDashbordItem; popupCanvas.simpleView += datamanager.SimpleFiledChange; popupCanvas.onClickSimple += datamanager.GetSimpleCompleteData; popupCanvas.onClickDetail += datamanager.GetCompleteInfo; popupCanvas.onOpenDashboard += popupCanvas.panel_completealramhistory.Close; popupCanvas.panel_completealramhistory.onClickAlram += completeTimeManager.MachineCorrespondingToAlarm; popupCanvas.panel_completealramhistory.onCheckAlarmData += completeTimeManager.CheckCompleteTimeAlarm; popupCanvas.panel_completealramhistory.onCheckAlarm += topCanvas.panel_toptoolbar.SetAlarmCount; popupCanvas.panel_completealramhistory.onOpen += popupCanvas.CurrentDashoboardClose; popupCanvas.panel_completealramhistory.onDashobardOpen += popupCanvas.panel_dashboard.dashBoardCheckListBox.OnOpenDashboardItem; popupCanvas.panel_completealramhistory.onDashobardClose += popupCanvas.panel_dashboard.dashBoardCheckListBox.OnCloseDashbordItem; popupCanvas.panel_completealramhistory.onDashobardClose += completeTimeManager.ResetMachinesHighLight; popupCanvas.panel_workconditionanalysis.onDateData += httpManager.GetFacilityCodeData; popupCanvas.panel_workconditionanalysis.onFacilityCodeData += httpManager.GetWorkItemCodeData; popupCanvas.panel_workconditionanalysis.onSearchData += httpManager.SearchWorkConditions; popupCanvas.panel_workconditionanalysis.onChangedDropdownValue += workConditionsManager.ChangeMainChartData; popupCanvas.panel_workconditionanalysis.onClose += popupCanvas.panel_dashboard.dashBoardCheckListBox.OnCloseDashbordItem; popupCanvas.panel_worktimeanalysis.onDateData += httpManager.GetFacilityCodeData; popupCanvas.panel_worktimeanalysis.onFacilityCodeData += httpManager.GetWorkItemCodeData; popupCanvas.panel_worktimeanalysis.onSearchData += httpManager.SearchWorkTime; popupCanvas.panel_worktimeanalysis.onClose += popupCanvas.panel_dashboard.dashBoardCheckListBox.OnCloseDashbordItem; libraryManager.onUpdateMachineFilters += popupCanvas.panel_library.UpdateFileterList; libraryManager.onLibraryFilterigComplete += popupCanvas.panel_library.AddLibrarayButtons; datamanager.onSimpleInfo += popupCanvas.SimpleView; datamanager.onCompleteInfo += popupCanvas.DetailView; mqttManager.onNotloadData += popupCanvas.panel_completealramhistory.ActiveLoadingImage; mqttManager.onMachineData += datamanager.MachineMatching; mqttManager.onMachineData += completeTimeManager.SetCurrentData; mqttManager.onMachineData += productionStatusManager.SetFloorProductionStatus; mqttManager.onWorkshopData += productionStatusManager.SetWorkProgressStatus; productionStatusManager.onFirstFloorInfo += popupCanvas.panel_injectionproduction.SetProductionStatus; productionStatusManager.onSecondFloorInfo += popupCanvas.panel_assemblyproduction.SetProductionStatus; productionStatusManager.onWorkShopInfo += popupCanvas.panel_workprogressstatus.SetWorkProgressStatus; productionStatusManager.onActiveFirstBoard += popupCanvas.panel_injectionproduction.Open; productionStatusManager.onActiveSecondBoard += popupCanvas.panel_assemblyproduction.Open; completeTimeManager.onLoadData += popupCanvas.panel_completealramhistory.SetAlarmInfoItems; completeTimeManager.onUnloadData += popupCanvas.panel_completealramhistory.SetAlarmInfoItems; httpManager.onMachineKPIData += machineKPIManager.SetMachineKPI; httpManager.onWorkConditionsfacilityData += popupCanvas.panel_workconditionanalysis.SetFacilityDropDown; httpManager.onWorkConditionsItemCodeData += popupCanvas.panel_workconditionanalysis.SetWorkItemCodeDropDown; httpManager.onWorkTimefacilityData += popupCanvas.panel_worktimeanalysis.SetFacilityDropDown; httpManager.onWorkTimeItemCodeData += popupCanvas.panel_worktimeanalysis.SetWorkItemCodeDropDown; httpManager.onSendWorkConditionsData += workConditionsManager.SetWorkConditionsData; httpManager.onSendWorkTimeData += workTimeManager.SetWorkTimeData; workConditionsManager.onCompleteLoadData += popupCanvas.panel_workconditionanalysis.SetWorkConditionsData; workConditionsManager.onSendMainChartData += popupCanvas.panel_workconditionanalysis.SetChartData; workConditionsManager.onSendSubChartData += popupCanvas.panel_workconditionanalysis.SetSubChartDatas; workTimeManager.onSendChartData += popupCanvas.panel_worktimeanalysis.SetWorkTimeData; raycaster.onLeftClickMachine += popupCanvas.MachineDashBoardOpenFromOnClick; raycaster.onClickThermostat += popupCanvas.panel_thermostatcontrol.Open; raycaster.onClickProductionBoard += productionStatusManager.ActiveBoardToType; optionManager.onCompletedLoadOption += popupCanvas.panel_controlsetting.InitOptionSetting; optionManager.onCompletedLoadOption += popupCanvas.panel_protocolsetting.InitOptionSetting; optionManager.LoadOption(); } private void ExitProgram() { var mqtt = FindSingle(); mqtt.Disconnect(); #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #else Application.Quit(); // ¾îÇø®ÄÉÀÌ¼Ç Á¾·á #endif } private void SceneReLoad() { controller.option.isFirstPersonView = false; SceneManager.LoadScene(SceneManager.GetActiveScene().name); } private void ChangeCameraView(ViewMode mode) { controller.SetViewMode(mode); switch (mode) { case ViewMode.PerspectiveView: building.SetAllFloorExternalState(); break; case ViewMode.TopView: building.SetAllFloorExternalState(); break; case ViewMode.FirstPersonView: if (building.currentFloor.isEmptyFloor) return; if (controller.saveTargetPositions[ViewMode.FirstPersonView] == null) { building.SetCurrentFloorInternalState(); var pos = controller.option.target.position; if (building.currentFloor.FloorContainsPoint(pos)) break; var startPos = building.currentFloor.StartPoint.position; controller.option.target.position = startPos; controller.nextPosition = startPos; break; } else { var floorIndex = controller.saveTargetPositions[ViewMode.FirstPersonView].floorIndex; var slider = FindSingle().panel_floorcontrol; slider.ChangeValueFromOutside(floorIndex); break; } } controller.LastPositioning(true); } } }