You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.7 KiB
48 lines
1.7 KiB
6 months ago
|
@tool
|
||
|
extends HBoxContainer
|
||
|
|
||
|
var parent_resource = null
|
||
|
|
||
|
func _ready():
|
||
|
$AddElif.button_up.connect(add_elif)
|
||
|
$AddElse.button_up.connect(add_else)
|
||
|
|
||
|
func refresh():
|
||
|
if parent_resource is DialogicConditionEvent:
|
||
|
# hide add elif and add else button on ELSE event
|
||
|
$AddElif.visible = parent_resource.condition_type != DialogicConditionEvent.ConditionTypes.ELSE
|
||
|
$AddElse.visible = parent_resource.condition_type != DialogicConditionEvent.ConditionTypes.ELSE
|
||
|
$Label.text = "End of "+["IF", "ELIF", "ELSE"][parent_resource.condition_type]+" ("+parent_resource.condition+")"
|
||
|
|
||
|
# hide add add else button if followed by ELIF or ELSE event
|
||
|
var timeline_editor = find_parent('VisualEditor')
|
||
|
if timeline_editor:
|
||
|
var next_event = null
|
||
|
if timeline_editor.get_block_below(get_parent()):
|
||
|
next_event = timeline_editor.get_block_below(get_parent()).resource
|
||
|
if next_event is DialogicConditionEvent:
|
||
|
if next_event.condition_type != DialogicConditionEvent.ConditionTypes.IF:
|
||
|
$AddElse.hide()
|
||
|
if parent_resource.condition_type == DialogicConditionEvent.ConditionTypes.ELSE:
|
||
|
$Label.text = "End of ELSE"
|
||
|
else:
|
||
|
hide()
|
||
|
|
||
|
func add_elif():
|
||
|
var timeline = find_parent('VisualEditor')
|
||
|
if timeline:
|
||
|
var resource = DialogicConditionEvent.new()
|
||
|
resource.condition_type = DialogicConditionEvent.ConditionTypes.ELIF
|
||
|
timeline.add_event_undoable(resource, get_parent().get_index()+1)
|
||
|
timeline.indent_events()
|
||
|
timeline.something_changed()
|
||
|
|
||
|
func add_else():
|
||
|
var timeline = find_parent('VisualEditor')
|
||
|
if timeline:
|
||
|
var resource = DialogicConditionEvent.new()
|
||
|
resource.condition_type = DialogicConditionEvent.ConditionTypes.ELSE
|
||
|
timeline.add_event_undoable(resource, get_parent().get_index()+1)
|
||
|
timeline.indent_events()
|
||
|
timeline.something_changed()
|