public void OnMouseUp() { dragTarget = dragInvolved = false; if (preview) { if (isAfter) { transform.position = preview.transform.position; transform.rotation = preview.transform.rotation; before = previewOwner; if (before.connectedNodes.FirstOrDefault() != this) { List <ConnectableNode> newConnections = new List <ConnectableNode> { this }; newConnections.AddRange(connectedNodes); if (isBetween) { before.connectedNodes[0].before = this; foreach (ConnectableNode a in connectedNodes) { a.connectedNodes.AddRange(before.connectedNodes); } connectedNodes.AddRange(before.connectedNodes); before.UpdateConnections(newConnections, before.connectedNodes[0]); } else { before.UpdateConnections(newConnections); } } } else { ConnectableNode first = connectedNodes.Any() ? connectedNodes.LastOrDefault() : this; List <ConnectableNode> newConnections = new List <ConnectableNode> { previewOwner }; newConnections.AddRange(previewOwner.connectedNodes); first.UpdateConnections(newConnections); previewOwner.before = this; previewOwner.transform.Find("UpperTrigger").GetComponent <Collider>().enabled = false; } RemovePreview(); } transform.Find("LowerTrigger").GetComponent <Collider>().enabled = true; Collider upperTrigger = transform.Find("UpperTrigger").GetComponent <Collider>(); if (upperTrigger && !before) { upperTrigger.GetComponent <Collider>().enabled = true; } foreach (ConnectableNode a in connectedNodes) { a.transform.Find("LowerTrigger").GetComponent <Collider>().enabled = true; a.dragInvolved = false; } }
public void UpdateConnections(List <ConnectableNode> newConnections) { connectedNodes.AddRange(newConnections); if (before) { before.UpdateConnections(newConnections); } }