119 lines
3.8 KiB
C#
119 lines
3.8 KiB
C#
using DG.Tweening;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 螺丝刀
|
|
/// </summary>
|
|
public class Tool_Screwdriver : Tool_Base
|
|
{
|
|
/// <summary>
|
|
/// 开始安装螺丝
|
|
/// </summary>
|
|
/// <param name="screw"></param>
|
|
public void Install(Tool_Screw screw)
|
|
{
|
|
if (!screw.isInstall && !screw.isMoving && !isMoving)
|
|
{
|
|
screw.isMoving = true;
|
|
isMoving = true;
|
|
Debug.Log("开始拧紧螺丝");
|
|
startAction?.Invoke();
|
|
//螺丝刀移到螺丝上
|
|
transform.parent = null;
|
|
transform.DOLocalRotate(screw.installPos.localEulerAngles, 0.5f);
|
|
transform.DOMove(screw.installPos.position, 1).OnComplete(() =>
|
|
{
|
|
screw.BeInstalled(this);
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 开始卸载螺丝
|
|
/// </summary>
|
|
/// <param name="screw"></param>
|
|
public void UnInstall(Tool_Screw screw)
|
|
{
|
|
if (screw.isInstall && !screw.isMoving && !isMoving)
|
|
{
|
|
screw.isMoving = true;
|
|
isMoving = true;
|
|
Debug.Log("开始卸螺丝");
|
|
startAction?.Invoke();
|
|
//螺丝刀移到螺丝处
|
|
transform.parent = null;
|
|
transform.DOLocalRotate(screw.installPos.localEulerAngles, 0.5f);
|
|
transform.DOMove(screw.installPos.position, 1).OnComplete(() =>
|
|
{
|
|
screw.BeUnInstalled(this);
|
|
});
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (Input.GetMouseButtonDown(0) && !base.isMoving)
|
|
{
|
|
//点击螺丝验电
|
|
Ray tmpray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
|
if (Physics.Raycast(tmpray, out RaycastHit hit))
|
|
{
|
|
//螺丝
|
|
Tool_Screw ts = hit.transform.GetComponent<Tool_Screw>();
|
|
if (ts != null)
|
|
{
|
|
//固定螺丝操作限制
|
|
if (ts.id == "电能表盖子固定螺丝1")
|
|
{
|
|
if (!SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Left.isCut)
|
|
{
|
|
Debug.Log("封印未剪断");
|
|
return;
|
|
}
|
|
|
|
if(SiteManager.instance.measuringCabinet.meteringDevice.cover.isOpen)
|
|
{
|
|
Debug.Log("盖子打开的");
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (ts.id == "电能表盖子固定螺丝2")
|
|
{
|
|
if (!SiteManager.instance.measuringCabinet.meteringDevice.cover.cover_seal_Right.isCut)
|
|
{
|
|
Debug.Log("封印未剪断");
|
|
return;
|
|
}
|
|
if (SiteManager.instance.measuringCabinet.meteringDevice.cover.isOpen)
|
|
{
|
|
Debug.Log("盖子打开的");
|
|
return;
|
|
}
|
|
}
|
|
|
|
//接线螺丝要先点击检查接线
|
|
if (SiteManager.instance.measuringCabinet.meteringDevice.jieXian_screws.Contains(ts) && !SiteManager.instance.measuringCabinet.check_JieXian.isChecked)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if ((triggerAction == null ? 0 : triggerAction.Invoke(ts.triggerName, true)) == 0)
|
|
{
|
|
if (ts.isInstall)
|
|
{
|
|
UnInstall(ts);
|
|
}
|
|
else
|
|
{
|
|
Install(ts);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|