extends Node class_name PowerNetwork const DEBUG = true var nodes = [] var sockets = [] var debugColor = Color.cyan func _ready(): name = "PowerNetwork" debugColor = Color.from_hsv(randf(), 0.8, 0.8) func add_node(node): nodes.append(node) if node is ElectricSocket: sockets.append(node) func remove_node(node): var node_idx = nodes.find(node) if node_idx >= 0: nodes.remove(node_idx) var sock_idx = sockets.find(node) if sock_idx >= 0: sockets.remove(sock_idx) # Do other splitting here node.network = null func join(network): for node in network.nodes: nodes.append(node) node.network = self # Do other merging here network.queue_free() func _physics_process(_delta): # Recalculate power availability and usage var total_source = 0 var total_usage = 0 for socket in sockets: for connection in socket.connections: var manager = connection as PowerManager total_source += manager.power_source total_usage += manager.power_usage