63 lines
1.7 KiB
C#
63 lines
1.7 KiB
C#
using UnityEngine;
|
|
|
|
namespace NBF
|
|
{
|
|
public abstract class FishingLineNodeFeature : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// 当前功能组件所属的节点。
|
|
/// </summary>
|
|
public FishingLineNode Node { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 当前功能组件所属的鱼线求解器。
|
|
/// </summary>
|
|
public FishingLineSolver Solver { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 将当前功能组件绑定到指定节点和求解器。
|
|
/// </summary>
|
|
public void Bind(FishingLineNode node, FishingLineSolver solver)
|
|
{
|
|
Node = node;
|
|
Solver = solver;
|
|
|
|
if (!IsSupportedNode(node))
|
|
{
|
|
Debug.LogWarning($"{GetType().Name} 不适用于节点 {node.name} 的当前配置。", this);
|
|
}
|
|
|
|
OnBind();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 当前功能组件是否支持挂在该节点上。
|
|
/// 子类可按节点类型、尾节点类型或产品标识做限制。
|
|
/// </summary>
|
|
public virtual bool IsSupportedNode(FishingLineNode node)
|
|
{
|
|
return node != null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 节点与求解器绑定完成后的回调。
|
|
/// </summary>
|
|
protected virtual void OnBind()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 鱼线链路重建完成后的回调。
|
|
/// </summary>
|
|
public virtual void OnLineBuilt()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 鱼线达到断线条件后的回调。
|
|
/// </summary>
|
|
public virtual void OnLineBreakRequested()
|
|
{
|
|
}
|
|
}
|
|
} |