420 lines
12 KiB
C#
420 lines
12 KiB
C#
using DG.Tweening;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
public class Device_SpecializedVariableAcquisitionTerminal : Device_Base
|
|
{
|
|
#region 门相关
|
|
/// <summary>
|
|
/// 柜门
|
|
/// </summary>
|
|
public Door door;
|
|
/// <summary>
|
|
/// 柜门螺丝
|
|
/// </summary>
|
|
public Tool_Screw door_screw;
|
|
/// <summary>
|
|
/// 柜门封印
|
|
/// </summary>
|
|
public Device_Seal seal;
|
|
/// <summary>
|
|
/// 柜门封印触发区域
|
|
/// </summary>
|
|
public DeviceTrigger sealTrigger;
|
|
#endregion
|
|
/// <summary>
|
|
/// 屏显控制
|
|
/// </summary>
|
|
public Device_SpecializedVariableAcquisitionTerminal_ScreenControl screenControl;
|
|
/// <summary>
|
|
/// 重启按钮
|
|
/// </summary>
|
|
public ClickMoveBounce restartBtn;
|
|
|
|
#region U盘相关
|
|
/// <summary>
|
|
/// u盘安装区域
|
|
/// </summary>
|
|
public DeviceTrigger uPan_trigger;
|
|
/// <summary>
|
|
/// 安装的u盘
|
|
/// </summary>
|
|
public Tool_UPan uPan;
|
|
#endregion
|
|
|
|
#region SIM卡
|
|
/// <summary>
|
|
/// sim卡盖子
|
|
/// </summary>
|
|
public ClickRotate sim_cover;
|
|
/// <summary>
|
|
/// sim卡
|
|
/// </summary>
|
|
public Device_SIM sim;
|
|
/// <summary>
|
|
/// sim卡安装触发
|
|
/// </summary>
|
|
public DeviceTrigger sim_trigger;
|
|
#endregion
|
|
/// <summary>
|
|
/// 铭牌
|
|
/// </summary>
|
|
public Device_SpecializedVariableAcquisitionTerminal_NatePlane natePlane;
|
|
public DeviceTrigger trigger_天线;
|
|
|
|
#region 电台相关
|
|
/// <summary>
|
|
/// 电台
|
|
/// </summary>
|
|
public Device_SpecializedVariableAcquisitionTerminal_RadioStation radioStation;
|
|
/// <summary>
|
|
/// 电台安装区域
|
|
/// </summary>
|
|
public DeviceTrigger radiostation_trigger;
|
|
public ClickMove line_电台网线插头;
|
|
public ClickMove line_电台宽线插头;
|
|
public ClickMove line_电台_天线连接线插头;
|
|
public Device_SpecializedVariableAcquisitionTerminal_PowerPlug line_电台电源线插头;
|
|
#endregion
|
|
|
|
#region 板子
|
|
/// <summary>
|
|
/// 外板子
|
|
/// </summary>
|
|
public ClickMove outPlane;
|
|
/// <summary>
|
|
/// 外板螺丝
|
|
/// </summary>
|
|
public List<Tool_Screw> outPlane_screws;
|
|
#endregion
|
|
|
|
#region 天线插头相关
|
|
public Device_SpecializedVariableAcquisitionTerminal_TianXianPlug plug_tianxian上;
|
|
public Device_SpecializedVariableAcquisitionTerminal_TianXianPlug plug_tianxian下;
|
|
public DeviceTrigger plug_tianxian上_trigger;
|
|
public DeviceTrigger plug_tianxian下_trigger;
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 电源开关
|
|
/// </summary>
|
|
public ClickRotate powerSwitch;
|
|
|
|
|
|
protected override void OnAwake()
|
|
{
|
|
base.OnAwake();
|
|
if(GameManager.RunModelMgr.SceneType!= E_SceneType.Site)
|
|
{
|
|
GetComponentsInChildren<LineRenderer>(true).ToList().ForEach(a => a.enabled = false);
|
|
}
|
|
|
|
GetComponentsInChildren<PermanentTriggerBase>(true).ToList().ForEach(a => a.Awake());
|
|
|
|
door.canOpen += () => { return !door_screw.isInstall; };
|
|
door_screw.AddCheckAction(() => { return seal.isCut; });
|
|
|
|
//安装封印
|
|
sealTrigger.clickAction += () =>
|
|
{
|
|
if(triggerAction?.Invoke(sealTrigger.triggerName,true)==0)
|
|
seal.Install();
|
|
};
|
|
|
|
//天线
|
|
trigger_天线.clickAction += () =>
|
|
{
|
|
if(triggerAction==null || triggerAction.Invoke(trigger_天线.triggerName, true)==0)
|
|
TipPanel.ShowTip("天线完好");
|
|
};
|
|
|
|
//重启按钮
|
|
restartBtn.clickAction += () =>
|
|
{
|
|
screenControl.Restart();
|
|
};
|
|
|
|
//u盘安装触发区域
|
|
uPan_trigger.clickAction += () =>
|
|
{
|
|
if(uPan==null && LiveSceneManager.Instance.currentTool.name.Contains("u盘"))
|
|
{
|
|
//安装upan
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(uPan_trigger.triggerName, false) == 0)
|
|
{
|
|
Tool_UPan upan = LiveSceneManager.Instance.currentTool.GetComponent<Tool_UPan>();
|
|
upan.Add(uPan_trigger, result =>
|
|
{
|
|
if(result)
|
|
{
|
|
uPan = upan;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
#region SIM卡
|
|
//sim卡判断
|
|
sim.checkAction += () =>
|
|
{
|
|
return sim_cover.isOpen;
|
|
};
|
|
|
|
sim_cover.clickAction += isopen => { CheckShowSimTrigger(); };
|
|
|
|
//sim卡安装拆除事件
|
|
sim.clickAction += install =>
|
|
{
|
|
if(install)
|
|
{
|
|
screenControl.isGPRS故障 = false;
|
|
screenControl.Refresh();
|
|
}
|
|
CheckShowSimTrigger();
|
|
};
|
|
|
|
//安装sim卡
|
|
sim_trigger.clickAction += () =>
|
|
{
|
|
sim.Add();
|
|
CheckShowSimTrigger();
|
|
};
|
|
#endregion
|
|
|
|
//电台安装
|
|
radiostation_trigger.clickAction += () =>
|
|
{
|
|
if(radioStation==null && LiveSceneManager.Instance.currentTool.name.Contains("专变电台"))
|
|
{
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(radiostation_trigger.triggerName, false) == 0)
|
|
{
|
|
Device_SpecializedVariableAcquisitionTerminal_RadioStation dt = LiveSceneManager.Instance.currentTool.GetComponent<Device_SpecializedVariableAcquisitionTerminal_RadioStation>();
|
|
dt.Add(radiostation_trigger, result =>
|
|
{
|
|
if(result)
|
|
{
|
|
dt.transform.parent = transform;
|
|
radioStation = dt;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
//外板子
|
|
outPlane.canOpen += () =>
|
|
{
|
|
return outPlane_screws.All(screw => !screw.isInstall);
|
|
};
|
|
|
|
//外板子螺丝
|
|
outPlane_screws.ForEach(screw =>
|
|
{
|
|
screw.AddCheckAction(() => { return outPlane.isOpen; });
|
|
});
|
|
|
|
|
|
//电源开关
|
|
powerSwitch.clickAction += isopen =>
|
|
{
|
|
CheckElectricity();
|
|
};
|
|
|
|
#region 天线插头相关
|
|
//选中插头条件
|
|
plug_tianxian上.canChoseAction += () => { return !plug_tianxian上.isChose && !plug_tianxian下.isChose; };
|
|
//选中插头条件
|
|
plug_tianxian下.canChoseAction += () => { return !plug_tianxian上.isChose && !plug_tianxian下.isChose; };
|
|
//选中插头
|
|
plug_tianxian上.choseAction += isChose =>
|
|
{
|
|
plug_tianxian上_trigger.gameObject.SetActive(isChose);
|
|
};
|
|
//选中插头
|
|
plug_tianxian下.choseAction += isChose =>
|
|
{
|
|
plug_tianxian下_trigger.gameObject.SetActive(isChose);
|
|
};
|
|
//点击安装插头
|
|
plug_tianxian上_trigger.clickAction += () =>
|
|
{
|
|
if (plug_tianxian上.isChose)
|
|
{
|
|
plug_tianxian上.Install(plug_tianxian上_trigger);
|
|
}
|
|
};
|
|
//点击安装插头
|
|
plug_tianxian下_trigger.clickAction += () =>
|
|
{
|
|
if (plug_tianxian下.isChose)
|
|
{
|
|
plug_tianxian下.Install(plug_tianxian下_trigger);
|
|
}
|
|
};
|
|
|
|
line_电台电源线插头.installActon += isinstall => { CheckElectricity(); };
|
|
#endregion
|
|
}
|
|
protected override void OnStart()
|
|
{
|
|
base.OnStart();
|
|
//添加拿出工具注册
|
|
EventCenter.Instance.AddEventListener<GameObject>(Enum_EventType.TakeOutAndRetrievingTheTools, OnHandTool);
|
|
}
|
|
|
|
protected override void OnDestroy()
|
|
{
|
|
base.OnDestroy();
|
|
//移除拿出工具注册
|
|
EventCenter.Instance.RemoveEventListener<GameObject>(Enum_EventType.TakeOutAndRetrievingTheTools, OnHandTool);
|
|
}
|
|
|
|
#region 拿出收回触发
|
|
private void OnHandTool(GameObject obj)
|
|
{
|
|
if (obj == null)
|
|
{
|
|
//收回
|
|
uPan_trigger.gameObject.SetActive(false);
|
|
CheckShowSimTrigger();
|
|
CheckSealTrigger();
|
|
Check电台Trigger();
|
|
}
|
|
else
|
|
{
|
|
//拿出
|
|
if (obj.name == "u盘")
|
|
{
|
|
if (door.isOpen && !door_screw.isInstall)
|
|
{
|
|
uPan_trigger.gameObject.SetActive(true);
|
|
}
|
|
}
|
|
else if (obj.name == "盒装SIM卡")
|
|
{
|
|
CheckShowSimTrigger();
|
|
}
|
|
else if (obj.name == "盒装封印")
|
|
{
|
|
CheckSealTrigger();
|
|
}
|
|
else if (obj.name == "专变电台")
|
|
{
|
|
Check电台Trigger();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void CheckShowSimTrigger()
|
|
{
|
|
if (sim_cover.isOpen && !sim.isInstalled && LiveSceneManager.Instance.currentTool!=null && LiveSceneManager.Instance.currentTool.name.Contains("盒装SIM卡"))
|
|
{
|
|
sim_trigger.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
sim_trigger.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
private void CheckSealTrigger()
|
|
{
|
|
if(seal.isCut && LiveSceneManager.Instance.currentTool != null && LiveSceneManager.Instance.currentTool.name.Contains("盒装封印"))
|
|
{
|
|
sealTrigger.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
sealTrigger.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
private void Check电台Trigger()
|
|
{
|
|
if(radioStation==null && LiveSceneManager.Instance.currentTool != null && LiveSceneManager.Instance.currentTool.name.Contains("专变电台"))
|
|
{
|
|
radiostation_trigger.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
radiostation_trigger.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 刷新带电状态
|
|
/// </summary>
|
|
public void CheckElectricity()
|
|
{
|
|
//电源插头带电
|
|
if(powerSwitch.isOpen)
|
|
{
|
|
line_电台电源线插头.redOne.hasElectricity = true;
|
|
line_电台电源线插头.blackOne.hasElectricity = true;
|
|
}
|
|
else
|
|
{
|
|
line_电台电源线插头.redOne.hasElectricity = false;
|
|
line_电台电源线插头.blackOne.hasElectricity = false;
|
|
}
|
|
|
|
//电台带电
|
|
if (radioStation != null)
|
|
{
|
|
radioStation.hasElectricity = powerSwitch.isOpen && line_电台电源线插头.isInstalled;
|
|
radioStation.CheckFaultState();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 门关上状态
|
|
/// </summary>
|
|
public void SetDoorCloseState()
|
|
{
|
|
door.SetState(false);
|
|
seal.isCut = false;
|
|
seal.gameObject.SetActive(true);
|
|
door_screw.isInstall = true;
|
|
door_screw.transform.localPosition = new Vector3(door_screw.transform.localPosition.x, door_screw.initPostionY, door_screw.transform.localPosition.z);
|
|
}
|
|
/// <summary>
|
|
/// 门打开状态
|
|
/// </summary>
|
|
public void SetDoorOpenState()
|
|
{
|
|
door.SetState(true);
|
|
seal.isCut = true;
|
|
seal.gameObject.SetActive(false);
|
|
door_screw.isInstall = false;
|
|
door_screw.transform.localPosition = new Vector3(door_screw.transform.localPosition.x, door_screw.initPostionY-0.03f, door_screw.transform.localPosition.z);
|
|
|
|
}
|
|
public void Set板子State(bool isopen)
|
|
{
|
|
if (isopen)
|
|
{
|
|
//装上
|
|
outPlane.SetState(true);
|
|
outPlane_screws.ForEach(a =>
|
|
{
|
|
a.isInstall = true;
|
|
a.transform.localPosition = new Vector3(a.transform.localPosition.x, a.initPostionY, a.transform.localPosition.z);
|
|
});
|
|
}
|
|
else
|
|
{
|
|
//拆除
|
|
outPlane.SetState(false);
|
|
outPlane_screws.ForEach(a =>
|
|
{
|
|
a.isInstall = false;
|
|
a.transform.localPosition = new Vector3(a.transform.localPosition.x, a.initPostionY - 0.02f, a.transform.localPosition.z);
|
|
});
|
|
}
|
|
}
|
|
}
|