YanCheng_Metrology/Assets/Scripts/CXX/Tools/Tool_Line.cs

81 lines
2.1 KiB
C#

using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 接线
/// </summary>
public class Tool_Line: Tool_Base
{
/// <summary>
/// 是否接上
/// </summary>
public bool isConnected;
/// <summary>
/// 标识
/// </summary>
public string id;
/// <summary>
/// 固定接线的螺丝
/// </summary>
public List<Tool_Screw> screws=new List<Tool_Screw>();
/// <summary>
/// 安装状态时Y的local值
/// </summary>
public float InstallPosY;
private Action<bool> actionBack;
//protected override void OnAwake()
//{
// base.OnAwake();
// id = gameObject.name;
//}
public void AddAction(Action<bool> actionBack)
{
this.actionBack = actionBack;
}
protected override void OnMDown()
{
if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0)
{
base.OnMDown();
if (isConnected)
{
//取下接线
if (screws.TrueForAll(a => !a.isInstall))
{
transform.DOLocalMoveY(InstallPosY - 2, 1).OnComplete(() =>
{
isConnected = false;
actionBack?.Invoke(isConnected);
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
CallScoreAction(false);
});
}
}
else
{
//装上接线
if (screws.TrueForAll(a => !a.isInstall))
{
transform.DOLocalMoveY(InstallPosY, 1).OnComplete(() =>
{
isConnected = true;
actionBack?.Invoke(isConnected);
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
CallScoreAction(true);
});
}
}
}
}
}