HighNoonRoulette/addons/localization_editor/scenes/remaps/LocalizationRemapsKeysHead.gd
2025-08-28 01:55:38 +02:00

46 lines
1.6 KiB
GDScript

# Remaps head keys UI for LocalizationEditor : MIT License
# @author Vladimir Petrenko
@tool
extends MarginContainer
var _type: String = "remapkeys"
var _filter: String = ""
var _data: LocalizationData
@onready var _music_ui = $VBox/HBoxTop/Music
@onready var _image_ui = $VBox/HBoxTop/Image
@onready var _video_ui = $VBox/HBoxBottom/Video
@onready var _reset_ui = $VBox/HBoxBottom/Reset
func set_data(data: LocalizationData):
_data = data
_filter = _data.data_filter_remaps_by_type(_type)
_init_connections()
func _init_connections() -> void:
if not _music_ui.is_connected("button_up", _filter_changed_action):
assert(_music_ui.button_up.connect(_filter_changed_action) == OK)
if not _image_ui.is_connected("button_up", _filter_changed_action):
assert(_image_ui.button_up.connect(_filter_changed_action) == OK)
if not _video_ui.is_connected("button_up", _filter_changed_action):
assert(_video_ui.button_up.connect(_filter_changed_action) == OK)
if not _reset_ui.is_connected("button_up", _filter_reset_action):
assert(_reset_ui.button_up.connect(_filter_reset_action) == OK)
func _filter_changed_action() -> void:
var new_filter = ""
if _music_ui.is_pressed():
new_filter = new_filter + "audio"
if _image_ui.is_pressed():
new_filter = new_filter + ",image"
if _video_ui.is_pressed():
new_filter = new_filter + ",video"
_filter = new_filter
_data.data_filter_remaps_put(_type, _filter)
func _filter_reset_action() -> void:
_music_ui.set_pressed(false)
_image_ui.set_pressed(false)
_video_ui.set_pressed(false)
_filter = ""
_data.data_filter_remaps_put(_type, _filter)