public override void DrawCurve(BaseNode b) { Rect rect = b.windowRect; rect.y += b.windowRect.height * .5f; rect.width = 1; rect.height = 1; BaseNode e = BehaviorEditor.settings.currentGraph.GetNodeWithIndex(b.enterNode); if (e == null) { BehaviorEditor.settings.currentGraph.DeleteNode(b.id); } else { Color targetColor = Color.green; if (!b.isAssigned || b.isDuplicate) { targetColor = Color.red; } Rect r = e.windowRect; BehaviorEditor.DrawNodeCurve(r, rect, true, targetColor); } if (b.isDuplicate) { return; } if (b.targetNode > 0) { BaseNode t = BehaviorEditor.settings.currentGraph.GetNodeWithIndex(b.targetNode); if (t == null) { b.targetNode = -1; } else { rect = b.windowRect; rect.x += rect.width; Rect endRect = t.windowRect; endRect.x -= endRect.width * .5f; Color targetColor = Color.green; if (t.drawNode is StateNode) { if (!t.isAssigned || t.isDuplicate) { targetColor = Color.red; } } else { if (!t.isAssigned) { targetColor = Color.red; } else { targetColor = Color.yellow; } } BehaviorEditor.DrawNodeCurve(rect, endRect, false, targetColor); } } }
public override void DrawCurve(BaseNode b) { Rect rect = b.windowRect; rect.y += b.windowRect.height * 0.5f; rect.width = 1; rect.height = 1; BaseNode enter = BehaviorEditor.settings.currentGraph.GetNodeWithIndex(b.enterNode); // if enterNode is null, enterNode has likely been deleted. remove this node if (enter == null) { BehaviorEditor.settings.currentGraph.DeleteNode(enter.id); } else { // color transition lines Color targetColor = Color.green; if (!b.isAssigned || b.isDuplicate) { targetColor = Color.red; } Rect r = enter.windowRect; BehaviorEditor.DrawNodeCurve(r, rect, true, targetColor); } if (b.isDuplicate) { return; } if (b.targetNode > 0) { BaseNode target = BehaviorEditor.settings.currentGraph.GetNodeWithIndex(b.targetNode); // if target is null, target has likely been deleted. remove this node if (target == null) { b.targetNode = -1; } else { rect = b.windowRect; rect.x += rect.width; Rect endRect = target.windowRect; endRect.x -= endRect.width * 0.5f; Color targetColor = Color.green; if (target.drawNode is StateNode) { if (!target.isAssigned || target.isDuplicate) { targetColor = Color.red; } } else { if (!target.isAssigned) { targetColor = Color.red; } else { targetColor = Color.yellow; } } Rect r = enter.windowRect; BehaviorEditor.DrawNodeCurve(rect, endRect, false, targetColor); } } }