La-Torreta-del-Drac/scenes/dragon_editor/line_edit.gd
2025-04-09 21:31:12 +02:00

64 lines
1.2 KiB
GDScript

extends LineEdit
var available_characters: Array[String] = [
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
' ',
]
func _ready() -> void:
connect("text_changed", _text_to_upper)
func _text_to_upper(new_text: String):
var ascii_map := {
"á":"a", "à":"a", "â":"a", "ä":"a", "ã":"a", "å":"a",
"é":"e", "è":"e", "ê":"e", "ë":"e",
"í":"i", "ì":"i", "î":"i", "ï":"i",
"ó":"o", "ò":"o", "ô":"o", "ö":"o", "õ":"o",
"ú":"u", "ù":"u", "û":"u", "ü":"u",
"ñ":"n", "ç":"c",
"Á":"A", "À":"A", "Â":"A", "Ä":"A", "Ã":"A", "Å":"A",
"É":"E", "È":"E", "Ê":"E", "Ë":"E",
"Í":"I", "Ì":"I", "Î":"I", "Ï":"I",
"Ó":"O", "Ò":"O", "Ô":"O", "Ö":"O", "Õ":"O",
"Ú":"U", "Ù":"U", "Û":"U", "Ü":"U",
"Ñ":"N", "Ç":"C"
}
var filtered_text := ""
for c in new_text.to_upper():
if ascii_map.has(c) and available_characters.has(ascii_map[c]):
filtered_text += ascii_map[c]
elif c.unicode_at(0) <= 127 and available_characters.has(c):
filtered_text += c
var last_caret_column = caret_column
text = filtered_text
caret_column = last_caret_column