extends GraphNode class_name GraphFileNode var scene : DialogueScene = null # static var base_loc :String = "res://dialogue/resources/" var file_loc : String func _init(loc : String): file_loc = loc title = loc name = loc.replace("/", ";").replace(".","*") scene = DialogueScene.load_scene(loc) func _ready(): add_child(Control.new()) set_slot(0, true, 0, Color.BLACK, false, 0, Color.BLACK) if scene == null: return var dias : Array[Dialogue] = scene.get_scene() var i = 1 for dia in dias: if dia.choices.is_empty(): continue else: for chc : Choice in dia.choices: var l = Label.new() if chc.response.is_empty() : l.text = "(invisible choice)" else: l.text = chc.response add_child(l) set_slot(i, false, 0, Color.BLACK, true, 0, Color.from_hsv(float(i-1)*0.1, 1, 1)) i+=1 func map(ge : GraphEdit): if scene != null: var to_map_arr : Array[GraphFileNode] = [] var dias : Array[Dialogue] = scene.get_scene() var i = 0 for dia in dias: if dia.choices.is_empty(): continue else: for chc : Choice in dia.choices: for t : ChoiceTarget in chc.targets: var name1 = t.target_scene_loc.replace("/", ";").replace(".","*") var outNode : GraphFileNode if !ge.has_node(name1): outNode = GraphFileNode.new(t.target_scene_loc) ge.add_child(outNode) to_map_arr.append(outNode) ge.connect_node(self.name, i, name1, 0) i+=1 for to_map : GraphFileNode in to_map_arr: to_map.map(ge)