YanCheng_Metrology/Assets/Scripts/CXX/StepState/1002/StepState_1002.cs

258 lines
8.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting.Antlr3.Runtime.Misc;
using UnityEngine;
/// <summary>
/// 直接接入式电能计量装置 步骤状态设置
/// </summary>
public class StepState_1002 : StepState
{
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);
steps.Add(12, E_SceneType.Site);
steps.Add(13, E_SceneType.Site);
steps.Add(14, E_SceneType.Site);
steps.Add(15, E_SceneType.Site);
steps.Add(16, E_SceneType.Site);
steps.Add(17, E_SceneType.Site);
steps.Add(18, E_SceneType.Site);
}
/// <summary>
/// 从场景第一步会依次往下执行,直到指定步骤
/// </summary>
/// <param name="num"></param>
public override void SetStepState(int num, int lastNum)
{
Debug.Log("切换步骤"+num);
//删除手里的东西
LiveSceneManager.Instance?.OnCheckSubProcess();
if (num == 1)
{
//查看任务单
OfficeManager.Instance.mobileController.downIndex = 0;
}
else if (num == 2)
{
//工作预约
OfficeManager.Instance.mobileController.downIndex = 1;
}
else if (num == 3)
{
//办理工作票
OfficeManager.Instance.mobileController.downIndex = 2;
}
else if (num == 4)
{
//填写装拆工单
}
else if (num == 5)
{
//场景首个步骤
//正确着装
//清空背包
PacksackBagMgr.Instance.ClearAllToolAndDiveceAndMaterial();
//完成第一步点击去工具间
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<Tool_SelectComponent> items=ToolAndmaterialMgr.Instance.GetItemInfoByName(new List<string> { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" });
items.ForEach(item =>
{
PacksackBagMgr.Instance.AddOneToolOrMater(item.itemInfo);
Destroy(item.gameObject);
//穿上
PacksackBagMgr.Instance.WearItemState(item.itemInfo, true);
});
}
else if (num == 7)
{
//场景首个步骤
//与客户沟通
//完成第一步点击去工具间
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<ItemInfo> items=ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "国网安全帽", "工作服", "绝缘手套", "绝缘靴" });
//放入背包
items.ForEach(item =>
{
PacksackBagMgr.Instance.AddOneToolOrMater(item);
//穿上
PacksackBagMgr.Instance.WearItemState(item, true);
});
//生成工具
List<ItemInfo> items2 = ToolAndmaterialMgr.Instance.CreateItemInfoByName(new List<string> { "剥线钳", "绝缘螺丝刀", "验电笔", "工作证", "盒装封印", "绝缘胶带", "三相四线电能表" });
items2.ForEach(item =>
{
PacksackBagMgr.Instance.AddOneToolOrMater(item);
});
#endregion
//还原柜子
SiteManager.instance.measuringCabinet.Init();
//还原npc对话
GameObject.FindObjectsOfType<NPCController>().ToList().ForEach(a => { a.speackIndex = 0; });
}
else if (num == 8)
{
//班前会
}
else if (num == 9)
{
//接线检查
//还原npc负责人
GameObject.FindObjectsOfType<NPCController>().ToList().Find(a => a.triggerName == "NPC负责人").speackIndex = 1;
}
else if(num == 10)
{
//断开电源并验电
//门开着
SiteManager.instance.measuringCabinet.cabinetDoor.OpenState();
//盖子拆下来
SiteManager.instance.measuringCabinet.meteringDevice.CoverUnstallState();
//封印拆掉
SiteManager.instance.measuringCabinet.meteringDevice.CoverSealUninstallState();
//接线已检查
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true;
SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = false;
}
else if (num == 11)
{
//核对和抄录计量设备信息
//电源断开了
SiteManager.instance.measuringCabinet.inSwitch.CloseState();
}
else if(num== 12)
{
//拆除电能计量装置
//铭牌已读取
SiteManager.instance.measuringCabinet.meteringDevice.namePlate.isChecked = true;
}
else if( num == 13)
{
//安装电能表
//拆除状态
SiteManager.instance.measuringCabinet.meteringDevice.Init(false);
SiteManager.instance.measuringCabinet.meteringDevice.gameObject.SetActive(false);
SiteManager.instance.measuringCabinet.meteringDevice = null;
//杂物显示
SiteManager.instance.measuringCabinet.sundries.gameObject.SetActive(true);
//电能表接线取下了
SiteManager.instance.measuringCabinet.jieXian_lines.ForEach(screw =>
{
screw.isConnected = false;
screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY-2, screw.transform.localPosition.z);
});
//刷新带电状态
SiteManager.instance.measuringCabinet.CheckHasElectricity();
}
else if (num == 14)
{
//安装检查
SiteManager.instance.measuringCabinet.meteringDevice = GameObject.FindObjectOfType<Device_3Phase4WireMeter>(true);
SiteManager.instance.measuringCabinet.meteringDevice.gameObject.SetActive(true);
//重新注册回调
SiteManager.instance.measuringCabinet.AddActions();
//固定螺丝拧上
SiteManager.instance.measuringCabinet.meteringDevice.FixScrewInstall();
//接线未检查
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = false;
SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = true;
//电能表接线连上了
SiteManager.instance.measuringCabinet.jieXian_lines.ForEach(screw =>
{
screw.isConnected = true;
screw.transform.localPosition = new Vector3(screw.transform.localPosition.x, screw.InstallPosY, screw.transform.localPosition.z);
});
//接线螺丝拧上了
SiteManager.instance.measuringCabinet.meteringDevice.JieXianScrewInstallState();
//刷新带电状态
SiteManager.instance.measuringCabinet.CheckHasElectricity();
}
else if(num== 15)
{
//现场通电及检查
//接线未检查
SiteManager.instance.measuringCabinet.check_JieXian.isChecked = true;
SiteManager.instance.measuringCabinet.check_JieXian.GetComponent<BoxCollider>().enabled = false;
}
else if(num== 16)
{
//实施封印
//开关打开了
SiteManager.instance.measuringCabinet.inSwitch.OpenState();
//盖子盖上
SiteManager.instance.measuringCabinet.meteringDevice.CoverInstallState();
}
else if(num== 17)
{
//填写告知单
SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Left.Install();
SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Right.Install();
}
else if(num== 18)
{
//清理现场
}
}
}