cleaned code and prefixed display text of directories when using the ls command to have an /
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user