Added IExecutable and ISlotContainer interface.

Changed SlotContainerNode to ExecutableNode
This commit is contained in:
Misaki
2024-11-05 02:25:15 +09:00
parent 7eec130b39
commit c853994bf5
51 changed files with 443 additions and 400 deletions

View File

@@ -1,15 +0,0 @@
using System.Collections.Generic;
namespace Misaki.GraphView
{
public static class BaseNodeExtension
{
public static void ClearAllExecuteFlag(this IList<SlotContainerNode> nodes)
{
foreach (var node in nodes)
{
node.ClearExecuteFlag();
}
}
}
}

View File

@@ -0,0 +1,18 @@
using System.Collections.Generic;
namespace Misaki.GraphView
{
public static class DataNodeExtension
{
public static void ClearAllExecuteFlag(this IList<DataNode> nodes)
{
foreach (var node in nodes)
{
if (node is IExecutable executable)
{
executable.ClearExecutionFlag();
}
}
}
}
}

View File

@@ -13,8 +13,12 @@ namespace Misaki.GraphView
for (var i = 0; i < slotCount; i++)
{
var other = slot.LinkedSlotData[i];
var otherSlot = slot.owner.GraphObject.GetNode(other.nodeID).GetSlot(other.slotIndex, other.direction);
otherSlot.owner.GetSlot(other.slotIndex, other.direction)?.Unlink(slot);
var otherNode = slot.owner.GraphObject.GetNode(other.nodeID);
if (otherNode is ISlotContainer slotContainer)
{
slotContainer.GetSlot(other.slotIndex, other.direction)?.Unlink(slot);
}
}
}