using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; /// /// 直接接入式电能计量装置 步骤状态设置 /// public class StepState_4001 : StepState { /// /// 现场场景中的特殊物体控制 /// private Device_Control_4001 device_Control; private void Awake() { steps.Add(1, E_SceneType.Office);//线损异常类型研判 steps.Add(2, E_SceneType.Office);//异常分析 steps.Add(3, E_SceneType.Office);//工作预约 steps.Add(4, E_SceneType.Office);//办理工作票 steps.Add(5, E_SceneType.ToolRoom);//正确着装 steps.Add(6, E_SceneType.ToolRoom);//选取工具 steps.Add(7, E_SceneType.Site);//与客户沟通 steps.Add(8, E_SceneType.Site);//班前会 steps.Add(9, E_SceneType.Site);//采集故障 steps.Add(10, E_SceneType.Site);//采集故障处理 steps.Add(11, E_SceneType.Site);//清理现场 } public override void SetDeviceControl(Device_Control device_Control) { this.device_Control = (Device_Control_4001)device_Control; } /// /// 从场景第一步会依次往下执行,直到指定步骤 /// /// public override void SetStepState(int num, int lastNum) { Debug.Log("切换步骤" + num); //删除手里的东西 LiveSceneManager.Instance?.OnCheckSubProcess(); if (num == 1) { //办公室场景首个步骤 //线损异常类型研判 GameManager.UIMgr.HidePanel(); GameManager.UIMgr.HidePanel(); GameManager.UIMgr.HidePanel(); GameManager.UIMgr.HidePanel(); GameManager.UIMgr.HidePanel(); PacksackBagMgr.Instance.ClearAllData(); } if (num == 2) { //异常分析 //未完成 OfficeManager.Instance.mobileController.downIndex = 0; } else if (num == 3) { //工作预约 OfficeManager.Instance.mobileController.downIndex = 1; } else if (num == 4) { //办理工作票 OfficeManager.Instance.mobileController.downIndex = 2; } else if (num == 5) { //场景首个步骤 //正确着装 //清空背包 PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial(); TooRoomMannger.Instance.CheckWearByWearDic(); //完成第一步点击去工具间 if (num == lastNum) { E_SceneType curret = GameManager.RunModelMgr.SceneType; GameManager.RunModelMgr.SceneType = E_SceneType.Office; if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID("工具间按钮", true) == 0) { Debug.Log("工具间按钮已自动点击"); } GameManager.RunModelMgr.SceneType = curret; } } else if (num == 6) { //选取工器具 //服装拿到背包 List items = ToolAndmaterialMgr.Instance.GetItemInfoByName(new List { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" }); items.ForEach(item => { PacksackBagMgr.Instance.AddOneToolOrMater(item.itemInfo); Destroy(item.gameObject); //穿上 PacksackBagMgr.Instance.WearItemState(item.itemInfo, true); }); } else if (num == 7) { //场景首个步骤 //与客户沟通 //移动任务位置 LiveSceneManager.Instance.firstPersonController.transform.position = new Vector3(-43.02f, 1.07f, -90.08f); LiveSceneManager.Instance.firstPersonController.transform.eulerAngles = new Vector3(0, -181.643f, 0); //完成第一步点击去工具间 if (num == lastNum) { E_SceneType curret = GameManager.RunModelMgr.SceneType; GameManager.RunModelMgr.SceneType = E_SceneType.ToolRoom; if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID("现场按钮", true) == 0) { Debug.Log("现场按钮已自动点击"); } GameManager.RunModelMgr.SceneType = curret; } #region 背包重置并带上正确装备 //清空背包数据 PacksackBagMgr.Instance.ClearAllData(); //生成服装 List items = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" }); //放入背包 items.ForEach(item => { PacksackBagMgr.Instance.AddOneToolOrMater(item); //穿上 PacksackBagMgr.Instance.WearItemState(item, true); }); //生成工具 List items2 = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List { "剥线钳","绝缘螺丝刀","验电笔","国网安全帽","工作服","绝缘手套","绝缘靴","工作证","盒装封印","采集器" }); items2.ForEach(item => { PacksackBagMgr.Instance.AddOneToolOrMater(item); }); #endregion //还原柜子 device_Control.Init(); //还原npc对话 GameObject.FindObjectsOfType().ToList().ForEach(a => { a.speackIndex = 0; a.spriteRenderer.gameObject.SetActive(true); }); //关闭故障登记表 GameManager.UIMgr.HidePanel(); } else if (num == 8) { //班前会 GameObject.FindObjectsOfType().ToList().Find(a => a.triggerName == "NPC客户").spriteRenderer.gameObject.SetActive(false); } else if (num == 9) { //采集故障 //移动任务位置 LiveSceneManager.Instance.firstPersonController.transform.position = new Vector3(-42.91014f, 0.8813875f, -99.69319f); LiveSceneManager.Instance.firstPersonController.transform.eulerAngles = new Vector3(0, -180.343f, 0); //还原npc负责人 GameObject.FindObjectsOfType().ToList().ForEach(a => { if (a.triggerName == "NPC负责人") a.speackIndex = 1; a.spriteRenderer.gameObject.SetActive(false); }); } else if (num == 10) { //采集故障处理 //门开着 device_Control.cabinetDoor.SetState(true); device_Control.door_screw.isInstall = false; device_Control.door_screw.transform.localPosition = new Vector3(device_Control.door_screw.transform.localPosition.x, device_Control.door_screw.initPostionY - 0.03f, device_Control.door_screw.transform.localPosition.z); device_Control.door_seal.isCut = true; device_Control.door_seal.gameObject.SetActive(false); ////盖子拆下来 //device_Control.meteringDevice.CoverUnstallState(); ////封印拆掉 //device_Control.meteringDevice.CoverSealUninstallState(); ////接线已检查 //device_Control.check_JieXian.isChecked = true; //device_Control.check_JieXian.gameObject.SetActive(false); } //else if (num == 11) //{ // //核对和抄录计量设备信息 // //电源断开了 // device_Control.inSwitch.CloseState(); // //刷新带电状态 // device_Control.CheckHasElectricity(); //} //else if (num == 12) //{ // //拆除电能计量装置 // //铭牌已读取 // device_Control.meteringDevice.namePlate.isChecked = true; //} //else if (num == 13) //{ // //安装电能表 // //拆除状态 // device_Control.meteringDevice.Init(false); // device_Control.meteringDevice.gameObject.SetActive(false); // device_Control.meteringDevice = null; // //杂物显示 // device_Control.sundries.gameObject.SetActive(true); // //电能表接线取下了 // device_Control.jieXian_lines.ForEach(line => // { // line.SetConenctState(false); // }); // //刷新带电状态 // device_Control.CheckHasElectricity(); //} //else if (num == 14) //{ // //安装检查 // device_Control.meteringDevice = GameObject.FindObjectOfType(true); // device_Control.meteringDevice.gameObject.SetActive(true); // //重新注册回调 // //device_Control.AddActions(); // device_Control.meteringDevice.jieXian_screws.ForEach(screw => // { // screw.AddinstallAction(isinstalled => // { // //刷新带电状态 // device_Control.CheckHasElectricity(); // //判断接线完好显示隐藏 // device_Control.CheckJieXianOk(); // }); // }); // //固定螺丝拧上 // device_Control.meteringDevice.FixScrewInstall(); // //接线未检查 // device_Control.check_JieXian.isChecked = false; // device_Control.check_JieXian.gameObject.SetActive(true); // //电能表接线连上了 // device_Control.jieXian_lines.ForEach(line => // { // line.SetConenctState(true); // }); // //接线螺丝拧上了 // device_Control.meteringDevice.JieXianScrewInstallState(); // //刷新带电状态 // device_Control.CheckHasElectricity(); //} //else if (num == 15) //{ // //现场通电及检查 // //接线未检查 // device_Control.check_JieXian.isChecked = true; // device_Control.check_JieXian.gameObject.SetActive(false); //} //else if (num == 16) //{ // //实施封印 // //开关打开了 // device_Control.inSwitch.OpenState(); // //刷新带电状态 // device_Control.CheckHasElectricity(); // //盖子盖上 // device_Control.meteringDevice.CoverInstallState(); //} else if (num == 11) { device_Control.collector.Init(true); device_Control.sundries.gameObject.SetActive(true); //清理现场 } } }