diff --git a/scripts/layouts/layout_custom.gd b/scripts/layouts/layout_custom.gd index 841e62a..889a8e9 100644 --- a/scripts/layouts/layout_custom.gd +++ b/scripts/layouts/layout_custom.gd @@ -4,21 +4,23 @@ var has_errors: bool = false var _name: String var _rows: Array[Array] +var _file_name: String -func _init(json_path: String) -> void: - _name = json_path.get_file() +func _init(path: String) -> void: + _file_name = path.get_file() + _name = _file_name - var data: Variant = _load_json_file(json_path) + var data: Variant = _load_json_file(path) if not data: has_errors = true - printerr("ERROR LOADING KLE LAYOUT JSON: '%s'" % json_path) + printerr("ERROR LOADING KLE LAYOUT JSON: '%s'" % _file_name) return - var layout_rows := _deserialize(data) + var layout_rows := _deserialize(data, _file_name) if not layout_rows: has_errors = true - printerr("ERROR DESERIALIZING KLE LAYOUT: '%s'" % json_path) + printerr("ERROR DESERIALIZING KLE LAYOUT: '%s'" % _file_name) return _rows = layout_rows @@ -37,9 +39,9 @@ func _load_json_file(path: String) -> Variant: if not file: var file_err := FileAccess.get_open_error() if file_err == ERR_FILE_NOT_FOUND: - printerr("file not found '%s'" % path) + printerr("file not found '%s'" % _file_name) else: - printerr("error opening file '%s': %s" % [path, file_err]) + printerr("error opening file '%s': %s" % [_file_name, file_err]) return [] var content := file.get_as_text() @@ -49,7 +51,7 @@ func _load_json_file(path: String) -> Variant: printerr( ( "json parse error in '%s' at line %s: %s" - % [path, json.get_error_line(), json.get_error_message()] + % [_file_name, json.get_error_line(), json.get_error_message()] ) ) return [] @@ -59,10 +61,10 @@ func _load_json_file(path: String) -> Variant: return data -func _deserialize(data: Variant) -> Array[Array]: +func _deserialize(data: Variant, path: String) -> Array[Array]: var parser: AbstractParser if data is Array: - parser = ParserKLE.new(data as Array) + parser = ParserKLE.new(data as Array, path) else: return [] if parser.get_name() != "": diff --git a/scripts/layouts/parser_kle.gd b/scripts/layouts/parser_kle.gd index e5ba1ab..49989f1 100644 --- a/scripts/layouts/parser_kle.gd +++ b/scripts/layouts/parser_kle.gd @@ -65,7 +65,7 @@ const LABEL_TO_NUMPAD_KEYCODE_MAP: Dictionary[String, Key] = { ".": KEY_KP_PERIOD, } -const NAME := "_name" +const NAME := "name" const W := "w" const H := "h" @@ -86,11 +86,13 @@ const N := "n" const KEY_DICT := "key_dict" const POS := "pos" -var _name: String = "" -var _rows: Array[Array] = [] +var _name: String +var _rows: Array[Array] +var _file_name: String -func _init(data: Array) -> void: +func _init(data: Array, file_name: String) -> void: + _file_name = file_name var key_pos_dicts: Dictionary[Key, Array] = {} var row_index: int = 0 @@ -221,7 +223,7 @@ func _get_keycode_from_legend(legend: Array[String], data_key: Dictionary) -> Ke break if keycode == KEY_NONE: - printerr("%s: could not recognize key label %s" % [_name, str(legend)]) + printerr("%s: could not recognize key label %s" % [_file_name, str(legend)]) return keycode