2021-03-15 16:22:11 +01:00
|
|
|
tool
|
|
|
|
extends Control
|
|
|
|
|
|
|
|
var editor_reference
|
|
|
|
onready var portrait_picker = $PanelContainer/VBoxContainer/Header/PortraitPicker
|
|
|
|
|
|
|
|
var current_color = Color('#ffffff')
|
|
|
|
var default_icon_color = Color("#65989898")
|
|
|
|
|
|
|
|
# This is the information of this event and it will get parsed and saved to the JSON file.
|
|
|
|
var event_data = {
|
|
|
|
'action': 'join',
|
|
|
|
'character': '',
|
|
|
|
'portrait': '',
|
|
|
|
'position': {"0":false,"1":false,"2":false,"3":false,"4":false}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
for p in $PanelContainer/VBoxContainer/Header/PositionsContainer.get_children():
|
|
|
|
p.connect('pressed', self, "position_button_pressed", [p.name])
|
|
|
|
$PanelContainer/VBoxContainer/Header/CharacterPicker.connect('character_selected', self , '_on_character_selected')
|
|
|
|
portrait_picker.get_popup().connect("index_pressed", self, '_on_portrait_selected')
|
|
|
|
portrait_picker.allow_dont_change = false
|
|
|
|
|
|
|
|
|
|
|
|
func _on_character_selected(data):
|
|
|
|
# Updating icon Color
|
|
|
|
current_color = Color(data['color'])
|
|
|
|
var c_c_ind = 0
|
|
|
|
for p in $PanelContainer/VBoxContainer/Header/PositionsContainer.get_children():
|
|
|
|
if event_data['position'][str(c_c_ind)]:
|
|
|
|
p.set('self_modulate', Color(data['color']))
|
|
|
|
else:
|
|
|
|
p.set('self_modulate', default_icon_color)
|
|
|
|
c_c_ind += 1
|
|
|
|
event_data['character'] = data['file']
|
|
|
|
portrait_picker.set_character(event_data['character'], event_data['portrait'])
|
|
|
|
portrait_picker.text = 'Default'
|
|
|
|
|
|
|
|
|
|
|
|
func _on_portrait_selected(index):
|
|
|
|
var text = portrait_picker.get_popup().get_item_text(index)
|
|
|
|
if portrait_picker.allow_dont_change:
|
|
|
|
if text == "[Don't change]":
|
|
|
|
text = ''
|
|
|
|
event_data['portrait'] = text
|
|
|
|
portrait_picker.set_character(event_data['character'], event_data['portrait'])
|
|
|
|
|
|
|
|
|
|
|
|
func position_button_pressed(name):
|
|
|
|
clear_all_positions()
|
|
|
|
var selected_index = name.split('-')[1]
|
|
|
|
var button = $PanelContainer/VBoxContainer/Header/PositionsContainer.get_node('position-' + selected_index)
|
|
|
|
button.set('self_modulate', Color("#ffffff"))
|
|
|
|
button.set('self_modulate', current_color)
|
|
|
|
button.pressed = true
|
|
|
|
event_data['position'][selected_index] = true
|
|
|
|
|
|
|
|
|
|
|
|
func clear_all_positions():
|
|
|
|
for i in range(5):
|
|
|
|
event_data['position'][str(i)] = false
|
|
|
|
for p in $PanelContainer/VBoxContainer/Header/PositionsContainer.get_children():
|
|
|
|
p.set('self_modulate', default_icon_color)
|
|
|
|
p.pressed = false
|
|
|
|
|
|
|
|
|
|
|
|
func check_active_position(active_color = Color("#ffffff")):
|
|
|
|
var index = 0
|
|
|
|
for p in $PanelContainer/VBoxContainer/Header/PositionsContainer.get_children():
|
|
|
|
if event_data['position'][str(index)]:
|
|
|
|
p.pressed = true
|
|
|
|
p.set('self_modulate', active_color)
|
|
|
|
index += 1
|
|
|
|
|
|
|
|
|
|
|
|
func load_data(data):
|
|
|
|
event_data = data
|
|
|
|
if data['character'] != '':
|
2021-03-22 17:17:08 +01:00
|
|
|
var character_data = DialogicResources.get_character_json(data['character'])
|
2021-03-15 16:22:11 +01:00
|
|
|
$PanelContainer/VBoxContainer/Header/CharacterPicker.set_data(character_data['name'], Color(character_data['color']))
|
|
|
|
portrait_picker.set_character(data['character'], data['portrait'])
|
|
|
|
current_color = Color(character_data['color'])
|
|
|
|
check_active_position(current_color)
|
|
|
|
return
|
|
|
|
check_active_position()
|