extends Node2D class_name Spot class SpotLink: var link_from: Node2D #Spot var link_to: Node2D #Spot var line: Line2D func _init(from, to): line = Line2D.new() link_from = from link_to = to line.add_point(from.global_position) line.add_point(to.global_position) from.get_tree().root.call_deferred("add_child", line) return self var spot1 : SpotLink var spot2 : SpotLink var person: PersonRoot onready var sprite: Sprite = $Circle class MyCustomSorter: static func sort_ascending(a, b): if a[0] < b[0]: return true return false # Called when the node enters the scene tree for the first time. func _ready(): var distances : Array = [] for spot in get_tree().get_nodes_in_group("spot"): if spot != self: distances.append([self.global_position.distance_squared_to(spot.global_position), spot]) distances.sort_custom(MyCustomSorter, "sort_ascending") spot1 = SpotLink.new(self, distances[0][1]) spot2 = SpotLink.new(self, distances[1][1]) func _process(_delta): sprite.self_modulate = Color.green if person != null else Color.red # processSignalSpotHasPerson(Person) # check the Person on the other spots # change the color of the line2D that are and that lead to the other spots # change this spot and other spots color appropriately # processSignalSpotPersonLeft() # reser that Spot and the other nearby