Intial commit
This commit is contained in:
@ -0,0 +1,114 @@
|
||||
tool
|
||||
extends GraphNode
|
||||
|
||||
signal changed_offset(nid, vec2)
|
||||
signal changed_size(this)
|
||||
signal changed_slots(this)
|
||||
signal erased(this)
|
||||
signal pressed_editor(this)
|
||||
signal pressed_load(this)
|
||||
signal pressed_save(this)
|
||||
signal text_changed(nid, new_text)
|
||||
|
||||
onready var _Link_SpinBox = self.get_node("VBoxContainer/HBoxContainer/Link_SpinBox")
|
||||
onready var _Text_Editor = self.get_node("VBoxContainer/HBoxContainer2/TextEdit")
|
||||
|
||||
var _nid : int = 0
|
||||
var _slot_amount : int = 1
|
||||
|
||||
#Virtual Methods
|
||||
|
||||
func _ready():
|
||||
self._update_slots()
|
||||
|
||||
#Callback Methods
|
||||
|
||||
func _on_Editor_BTN_pressed():
|
||||
self.emit_signal("pressed_editor", self)
|
||||
|
||||
|
||||
func _on_Line_close_request():
|
||||
self.emit_signal("erased", self)
|
||||
|
||||
|
||||
func _on_Line_offset_changed():
|
||||
self.emit_signal("changed_offset", self._nid, self.offset)
|
||||
|
||||
|
||||
func _on_Line_resize_request(new_minsize):
|
||||
self.rect_size = new_minsize
|
||||
self.emit_signal("changed_size", self)
|
||||
|
||||
|
||||
func _on_Link_SpinBox_value_changed(value):
|
||||
self._slot_amount = int(self._Link_SpinBox.value)
|
||||
self._update_slots()
|
||||
self.emit_signal("changed_slots", self)
|
||||
|
||||
|
||||
func _on_Load_BTN_pressed():
|
||||
self.emit_signal("pressed_load", self)
|
||||
|
||||
|
||||
func _on_Save_BTN_pressed():
|
||||
self.emit_signal("pressed_save", self)
|
||||
|
||||
|
||||
func _on_TextEdit_text_changed():
|
||||
self.emit_signal("text_changed", self._nid, self._Text_Editor.text)
|
||||
|
||||
#Public Methods
|
||||
|
||||
func get_nid() -> int:
|
||||
return self._nid
|
||||
|
||||
|
||||
func get_slot_amount() -> int:
|
||||
return self._slot_amount
|
||||
|
||||
|
||||
func get_text() -> String:
|
||||
return self._Text_Editor.text
|
||||
|
||||
|
||||
func set_nid(new_nid):
|
||||
self._nid = new_nid
|
||||
var new_name = "NID " + str(new_nid)
|
||||
self.title = new_name
|
||||
self.name = new_name
|
||||
|
||||
|
||||
func set_slot_amount(new_amount : int):
|
||||
self._slot_amount = new_amount
|
||||
|
||||
|
||||
func set_text(new_text : String):
|
||||
self._Text_Editor.text = new_text
|
||||
self.emit_signal("text_changed", self._nid, new_text)
|
||||
|
||||
#Private Methods
|
||||
|
||||
func _clear_link_labels():
|
||||
var children = self.get_children()
|
||||
for child in children:
|
||||
if child is Label:
|
||||
child.free()
|
||||
|
||||
|
||||
func _update_slots():
|
||||
self.clear_all_slots()
|
||||
self._clear_link_labels()
|
||||
self.set_slot(0, true, 0, Color(1.0, 1.0, 1.0, 1.0), true, 0, Color(1.0, 1.0, 1.0, 1.0), null, null)
|
||||
var base_link_label = Label.new()
|
||||
base_link_label.text = "0"
|
||||
base_link_label.align = Label.ALIGN_RIGHT
|
||||
self.add_child(base_link_label)
|
||||
self.move_child(base_link_label, 0)
|
||||
var last_output_link_label = base_link_label
|
||||
for slot in range(1, self._slot_amount):
|
||||
self.set_slot(slot, false, 0, Color(1.0, 1.0, 1.0, 1.0), true, 0, Color(1.0, 1.0, 1.0, 1.0), null, null)
|
||||
var output_link_label = Label.new()
|
||||
output_link_label.text = str(slot)
|
||||
output_link_label.align = Label.ALIGN_RIGHT
|
||||
self.add_child_below_node(last_output_link_label, output_link_label)
|
||||
last_output_link_label = output_link_label
|
Reference in New Issue
Block a user