summaryrefslogtreecommitdiff
path: root/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'builder.py')
-rw-r--r--builder.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/builder.py b/builder.py
new file mode 100644
index 0000000..0bc0444
--- /dev/null
+++ b/builder.py
@@ -0,0 +1,76 @@
+import pygame
+from Graph import Graph
+from Node import Node
+from globals import *
+
+def main():
+ pygame.init()
+ screen = pygame.display.set_mode((WIDTH, HEIGHT))
+ clock = pygame.time.Clock()
+
+ running = True
+ graph = Graph(screen, file="finalGraph.txt")
+ graph.fromFile(False)
+ isNodeUnderMouse = False
+ node1 = None
+ node2 = None
+
+ while (running):
+ isNodeUnderMouse = False
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ file = open(input("Where would you like to save the graph: "),"w")
+ for i in graph.links:
+ file.write(i[0].text + " " + i[1].text + " " + str(i[2]) + " " + i[3] + "\n")
+ file.close()
+ running = False
+ if event.type == pygame.KEYDOWN:
+ if event.key == pygame.K_SPACE:
+ find = input("Name of node: ")
+ for i in graph.nodes:
+ if i.text == find:
+ i.color = BLUE
+ if event.type == pygame.MOUSEBUTTONUP:
+ mouseX, mouseY = pygame.mouse.get_pos()
+ for i in graph.nodes:
+ if(mouseX > i.pos[0] - i.radius and \
+ mouseY > i.pos[1] - i.radius and \
+ mouseX < i.pos[0] + i.radius and \
+ mouseY < i.pos[1] + i.radius):
+ graph.drawLinks(i)
+ if (node1):
+ node2 = i
+ description = input("Description of link: ")
+ if (description != "no"):
+ graph.links.append([node1, node2, 1.0, description])
+ node2 = None
+ node1 = None
+ elif (not node1 and not node2):
+ node1 = i
+ isNodeUnderMouse = True
+ if (not isNodeUnderMouse):
+ newNode = Node(pos=(mouseX, mouseY), vel=(0,0), text = input("New node text: "))
+ graph.nodes.append(newNode)
+ node1 , node2 = (None, None)
+ screen.fill(BLACK)
+
+ graph.draw()
+ mouseX, mouseY = pygame.mouse.get_pos()
+ for i in graph.nodes:
+ if(mouseX > i.pos[0] - i.radius and \
+ mouseY > i.pos[1] - i.radius and \
+ mouseX < i.pos[0] + i.radius and \
+ mouseY < i.pos[1] + i.radius):
+ i.color = GREEN
+ if (i not in graph.nodesUnderMouse):
+ graph.nodesUnderMouse.append(i)
+ graph.drawLinks(i)
+ else:
+ if i in graph.nodesUnderMouse:
+ graph.nodesUnderMouse.remove(i)
+ if (i.color != BLUE):
+ i.color = RED
+ pygame.display.flip()
+ clock.tick(60)
+if __name__ == "__main__":
+ main()