diff --git a/Assets/Scripts/UI/terminal/terminal_controls.gd b/Assets/Scripts/UI/terminal/terminal_controls.gd index 9d023f9..d76f8ae 100644 --- a/Assets/Scripts/UI/terminal/terminal_controls.gd +++ b/Assets/Scripts/UI/terminal/terminal_controls.gd @@ -4,6 +4,8 @@ class_name TerminalControls @onready var historyContainer = $MarginContainer/ScrollContainer/VBoxContainer @onready var caret = $MarginContainer/ScrollContainer/VBoxContainer/Label/Caret @onready var blink_timer = $MarginContainer/ScrollContainer/VBoxContainer/Label/CaretTimer +@onready var ruler: Label = $"caret-ruler" +@onready var scroll: ScrollContainer = $MarginContainer/ScrollContainer @export var terminalLine: RichTextLabel var command: String @@ -46,6 +48,7 @@ func InputChar(input) -> void: UpdateCaretPos() await get_tree().create_timer(.01).timeout reset_blink() + func InputDelChar() -> void: if terminalLine.text.length() > ("user@work " + directory).length() + 1: terminalLine.text = terminalLine.text.left(-1) @@ -70,8 +73,13 @@ func EnterCommand() -> void: currentDirData = GetDirAtPath(directory) if currentDirData is Dictionary: var list = "" + var file: String for key in currentDirData.keys(): - list += key + " " + file = key + if file.ends_with(".txt"): + list += key + " " + else: + list += key + "/ " CreateHistoryEntry(list) else: CreateHistoryEntry("error: Directory not found") @@ -110,35 +118,16 @@ func EnterCommand() -> void: # --- History and FileSystem Helpers --- func CreateHistoryEntry(content: String) -> void: -# var label = Label.new() -# label.text = content -# label.label_settings = LabelSettings.new() -# label.label_settings.font_size = 42 -# label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART -# label.custom_minimum_size = Vector2(1400, 0) - # - #if terminalLine.text.length() > 200: - #for child in historyContainer.get_children(): - #if child != terminalLine: - #child.queue_free() -# historyContainer.add_child(label) -# historyContainer.move_child(label, historyContainer.get_child_count() - 2) - - - + var rtl = RichTextLabel.new() rtl.bbcode_enabled = true - rtl.fit_content = true # Important for VBoxContainer + rtl.fit_content = true rtl.text = content rtl.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART rtl.custom_minimum_size = Vector2(1400, 0) rtl.add_theme_font_size_override("normal_font_size", 42) - # Optional: Set a theme or font override here - # rtl.add_theme_font_size_override("normal_font_size", 42) - historyContainer.add_child(rtl) - # Moves the entry above the input line historyContainer.move_child(rtl, historyContainer.get_child_count() - 2) func ResolvePath(current: String, target: String) -> String: @@ -211,34 +200,28 @@ help : Show this menu -------------------------") func ScrollUp(): - var scroll: ScrollContainer = $MarginContainer/ScrollContainer await get_tree().create_timer(.0001).timeout scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value - 100 ) func ScrollDown(): - var scroll: ScrollContainer = $MarginContainer/ScrollContainer await get_tree().create_timer(.0001).timeout scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value + 100 ) - + func GetBottomScroll(): - var scroll: ScrollContainer = $MarginContainer/ScrollContainer var scrollMax: float = scroll.get_v_scroll_bar().max_value await get_tree().create_timer(.01).timeout scroll.set_deferred("scroll_vertical", scrollMax) - scroll.vertical_scroll_mode = ScrollContainer.SCROLL_MODE_SHOW_NEVER - #call_deferred("GetBottomScroll") func UpdateCaretPos(): - await get_tree().create_timer(.01).timeout + await get_tree().create_timer(.05).timeout var visible_text = terminalLine.get_parsed_text() - var ruler: Label = $"caret-ruler" ruler.autowrap_mode =TextServer.AUTOWRAP_WORD_SMART ruler.text = visible_text