Files
ChunilENG/Assets/Scripts/EventConnecter.cs

220 lines
13 KiB
C#

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<Building>();
controller = FindSingle<OrbitalController>();
var optionManager = FindSingle<OptionManager>();
var libraryManager = FindSingle<LibraryManager>();
var mqttManager = FindSingle<MQTT>();
var httpManager = FindSingle<HTTPRequester>();
var machineKPIManager = FindSingle<MachineKPIManager>();
var completeTimeManager = FindSingle<CompleteTimeAlarmManager>();
var productionStatusManager = FindSingle<ProductionStatusManager>();
var workConditionsManager = FindSingle<WorkConditionsManager>();
var workTimeManager = FindSingle<WorkTimeManager>();
var highLightManager = FindSingle<HighLighterManager>();
var topCanvas = FindSingle<Canvas_Top>();
var rightCanvas = FindSingle<Canvas_Right>();
var popupCanvas = FindSingle<Canvas_Popup>();
var datamanager = FindSingle<DataManager>();
var raycaster = FindSingle<CHNRaycaster>();
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 += highLightManager.ActiveHighLighter;
popupCanvas.panel_library.onClickLibraryButton += highLightManager.SetTargetPosToMachine;
popupCanvas.panel_library.onDeselectLibraryButton += popupCanvas.MachineDashBoardClose;
popupCanvas.panel_library.onClose += highLightManager.ResetAllHighLighter;
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.onClose += highLightManager.ResetAllHighLighter;
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;
popupCanvas.panel_assemblyproduction.onOpen += popupCanvas.panel_injectionproduction.Close;
popupCanvas.panel_assemblyproduction.onOpen += popupCanvas.panel_workprogressstatus.Close;
popupCanvas.panel_assemblyproduction.onOpen += popupCanvas.panel_workconditionanalysis.OnClickCloseButton;
popupCanvas.panel_injectionproduction.onOpen += popupCanvas.panel_assemblyproduction.Close;
popupCanvas.panel_injectionproduction.onOpen += popupCanvas.panel_workprogressstatus.Close;
popupCanvas.panel_injectionproduction.onOpen += popupCanvas.panel_workconditionanalysis.OnClickCloseButton;
popupCanvas.panel_workprogressstatus.onOpen += popupCanvas.panel_assemblyproduction.Close;
popupCanvas.panel_workprogressstatus.onOpen += popupCanvas.panel_injectionproduction.Close;
popupCanvas.panel_workprogressstatus.onOpen += popupCanvas.panel_workconditionanalysis.OnClickCloseButton;
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;
completeTimeManager.onActiveHighLighter += highLightManager.ActiveHighLighter;
completeTimeManager.onActiveHighLighter += highLightManager.SetTargetPosToMachine;
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.onLeftClickMachine += highLightManager.ActiveHighLighter;
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>();
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:
var perspectivePos = controller.option.target.position;
var floorStartPos = building.currentFloor.StartPoint.position;
controller.nextPosition = new Vector3(perspectivePos.x, floorStartPos.y, perspectivePos.z);
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;
var startPos = building.currentFloor.StartPoint.position;
if (building.currentFloor.FloorContainsPoint(pos))
{
var tourModePos = new Vector3(pos.x, startPos.y, pos.z);
controller.option.target.position = tourModePos;
controller.nextPosition = tourModePos;
break;
}
controller.option.target.position = startPos;
controller.nextPosition = startPos;
break;
}
else
{
var floorIndex = controller.saveTargetPositions[ViewMode.FirstPersonView].floorIndex;
var slider = FindSingle<Canvas_Right>().panel_floorcontrol;
slider.ChangeValueFromOutside(floorIndex);
break;
}
}
controller.LastPositioning(true);
}
}
}