public void AddEdge(PuzzleEdge edge) { EdgeFront edgeFront = Instantiate(edgePrefab) as EdgeFront; edgeFront.transform.parent = transform; edgeFront.gameObject.name = "Edge " + edge.nodeA.name + " - " + edge.nodeB.name; edgeFront.Set(this, edge); edges.Add(edgeFront); }
public EdgeFront GetEdge(PuzzleEdge edge) { foreach (EdgeFront edgeFront in edges) { if (edgeFront.edge == edge) { return(edgeFront); } } return(null); }
public void RemoveEdge(PuzzleEdge edge) { // Remove element if (edge.element != null) { RemoveElement(edge.element); } // Remove edge edges.Remove(edge); removeEdge(edge); }
public void RemoveEdge(PuzzleEdge edge) { foreach (EdgeFront edgeFront in edges) { if (edgeFront.edge == edge) { Destroy(edgeFront.gameObject); edges.Remove(edgeFront); break; } } }
void HandleEdgeDrag() { if (Input.GetMouseButtonUp(0)) { s_TempDragEdge.gameObject.SetActive(false); if (hovered is NodeFront && hovered != s_DragStartNode) { NodeFront hoveredNode = (hovered as NodeFront); // Add new node and edge to it. if (hovered == s_TempDragNode) { PuzzleNode newNode = new PuzzleNode(); newNode.SetPosition(VectorToPoint(Snap(hoveredNode.transform.position))); puzzle.AddNode(newNode); foreach (NodeFront node in nodes) { if (node.node == newNode) { s_Selected = node; } } PuzzleEdge edge = new PuzzleEdge(s_DragStartNode.node, newNode); puzzle.AddEdge(edge); } // Add edge to existing node. else { PuzzleEdge edge = new PuzzleEdge(s_DragStartNode.node, hoveredNode.node); puzzle.AddEdge(edge); foreach (EdgeFront edgeFront in edges) { if (edgeFront.edge == edge) { s_Selected = edgeFront; } } } } s_DragStartNode = null; s_TempDragNode.gameObject.SetActive(false); } else { Vector2 pos = GetMousePos(); if (hovered is NodeFront) { pos = hovered.transform.position; } s_TempDragEdge.SetPositions(s_TempDragEdge.transform.position, pos); Vector2 snapped = Snap(pos); Point position = VectorToPoint(snapped); bool validNew = true; if (Vector2.Distance(snapped, pos * 0.5f) > 0.25f) { validNew = false; } else { foreach (PuzzleNode node in puzzle.nodes) { if (node.position == position) { validNew = false; break; } } } s_TempDragNode.gameObject.SetActive(validNew); s_TempDragNode.SetPoint(position); } }
public void AddEdge(PuzzleEdge edge) { edges.Add(edge); addEdge(edge); }