81 lines
2.1 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|