123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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'] != '':
- var character_data = DialogicUtil.load_json(DialogicUtil.get_path('CHAR_DIR', data['character']))
- $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()
|