private void ResizableInputBlock( List <Connection> connections, ConnectionPointDirection direction) { int size = EditorGUILayout.DelayedIntField( connections.Count - 1, GUILayout.MaxWidth(30)); if (size != connections.Count - 1) { int newSize = connections.Count - 1; while (size > newSize) { Connection newConn = CreateNewConnection(ConnectionType.Int); CheckForDuplicateNameInConnections(newConn, connections); entityData.AddNewConnectionPoint(newConn, direction); ++newSize; } bool confirmed = false; while (size < newSize) { Connection remove = connections[newSize--]; DeleteInput(remove, ref confirmed); } } }
public ConnectionPoint(GraphEntity node, ConnectionPointDirection direction, Connection connection) { if (nodeGraph == null) { throw new System.Exception("ConnectionPoint.nodeGraph MUST be set!"); } if (connection == null) { throw new System.Exception("Connection may not be null"); } nodeWindow = node; connectionDirection = direction; data = ConnectionPointData.GetControlPointData(connection.type); currentStyle = data.connectionPointStyle.unconnectedStyle; rect = new Rect(0, 0, currentStyle.normal.background.width, currentStyle.normal.background.height); GUID = connection.GUID; this.connection = connection; nodeGraph.RefreshConnectionPoint(this); }
public override void RemoveConnectionPoint(Connection connection, ConnectionPointDirection direction) { if (direction == ConnectionPointDirection.In) { inputConnections.Remove(connection); } else { outputConnections.Remove(connection); } window.RemoveConnectionPoint(connection, direction); }
public override void AddNewConnectionPoint(Connection newConn, ConnectionPointDirection direction) { if (direction == ConnectionPointDirection.In) { inputConnections.Add(newConn); } else { outputConnections.Add(newConn); } window.AddNewConnectionPoint(newConn, direction); }
public override void AddNewConnectionPoint(Connection newConn, ConnectionPointDirection direction) { ConnectionPoint newConnPoint = new ConnectionPoint(this, direction, newConn); if (direction == ConnectionPointDirection.In) { inConnectionPoints.Add(newConnPoint); } else { outConnectionPoints.Add(newConnPoint); } }
private void CreateNewConnectionPointContextMenu(GraphEntityData graphEntity, ConnectionPoint connectedTo) { ConnectionPointDirection direction = connectedTo.connectionDirection == ConnectionPointDirection.In ? ConnectionPointDirection.Out : ConnectionPointDirection.In; string msg = "Add new " + (direction == ConnectionPointDirection.In ? "Input" : "Output") + " Connection Point of type " + connectedTo.connection.type + "?"; var genericMenu = new GenericMenu(); genericMenu.AddItem(new GUIContent(msg), false, () => CreateNewConnectionPointFromConnection(graphEntity, connectedTo, direction)); genericMenu.ShowAsContext(); }
public override void RemoveConnectionPoint(Connection conn, ConnectionPointDirection direction) { if (direction == ConnectionPointDirection.In) { ConnectionPoint del = null; for (int i = 0; i < inConnectionPoints.Count; ++i) { if (inConnectionPoints[i].GUID == conn.GUID) { del = inConnectionPoints[i]; break; } } if (del == null) { Debug.LogError("Connection was not found trying to remove " + conn.GUID); } else { inConnectionPoints.Remove(del); } } else { ConnectionPoint del = null; for (int i = 0; i < outConnectionPoints.Count; ++i) { if (outConnectionPoints[i].GUID == conn.GUID) { del = outConnectionPoints[i]; break; } } if (del == null) { Debug.LogError("Connection was not found trying to remove " + conn.GUID); } else { outConnectionPoints.Remove(del); } } }
public override List <Connection> GetConnections(ConnectionPointDirection direction) { return(connections); }
/// <summary> /// If this is input/entrance/start node, direction == ConnectionPointDirection.Out. /// If this is output/exit/end node, direction == ConnectionPointDirection.In. /// </summary> /// <param name="newConn"></param> /// <param name="direction"></param> public override void RemoveConnectionPoint(Connection connection, ConnectionPointDirection direction) { connections.Remove(connection); window.RemoveConnectionPoint(connection, direction); }
/// <summary> /// If this is input/entrance/start node, direction == ConnectionPointDirection.Out. /// If this is output/exit/end node, direction == ConnectionPointDirection.In. /// </summary> /// <param name="newConn"></param> /// <param name="direction"></param> public override void AddNewConnectionPoint(Connection newConn, ConnectionPointDirection direction) { connections.Add(newConn); window.AddNewConnectionPoint(newConn, direction); }
public override void AddNewConnectionPoint(Connection newConn, ConnectionPointDirection direction) { connectionPoints.Add(new ConnectionPoint(this, direction, newConn)); }
private void CreateNewConnectionPointFromConnection(GraphEntityData graphEntity, ConnectionPoint connectedTo, ConnectionPointDirection direction) { Connection newConn = new Connection() { type = connectedTo.connection.type, GUID = System.Guid.NewGuid().ToString(), variableName = connectedTo.connection.variableName, }; ScenimaticBranchEditor.CheckForDuplicateNameInConnections(newConn, graphEntity.GetConnections(direction)); graphEntity.AddNewConnectionPoint(newConn, direction); if (!connectedTo.AllowsMultipleConnections()) { connectedTo.RemoveAllConnections(); } newConn.connectedToGUIDs.Add(connectedTo.GUID); connectedTo.connection.connectedToGUIDs.Add(newConn.GUID); RefreshConnectionPoint(connectedTo); }
public override List <Connection> GetConnections(ConnectionPointDirection direction) { return(direction == ConnectionPointDirection.In ? inputConnections : outputConnections); }
public abstract void RemoveConnectionPoint(Connection conn, ConnectionPointDirection direction);
public abstract void AddNewConnectionPoint(Connection newConn, ConnectionPointDirection direction);
public abstract List <Connection> GetConnections(ConnectionPointDirection direction);