Diffstat (limited to 'Chat.gd')
| -rw-r--r-- | Chat.gd | 38 |
1 files changed, 34 insertions, 4 deletions
@@ -7,12 +7,25 @@ onready var scroller = find_node("scroller") onready var tween = find_node("Tween") onready var scrollbar = scroller.get_v_scrollbar() +const server_says = "[b]server[color=#f0e67e]:[/color][/b] " + func _ready(): add_label( - "[b]server[color=#f0e67e]:[/color] [matrix]welcome to[/matrix] [rainbow freq=.3 sat=.7][shake rate=20 level=25]room 2!", + ( + "%s[b][matrix]welcome to [/matrix][rainbow freq=.3 sat=.7][shake rate=20 level=25]room 2!" + % server_says + ), "server" ) + add_label( + ( + "%s[b][tornado freq=5 radius=10] you can use [/tornado][wave amp=20 freq=20][url=https://en.wikipedia.org/wiki/BBCode]bbcode" + % server_says + ), + "howto", + Vector2(1000, 80) + ) func _on_Main_recieved(data): @@ -20,18 +33,30 @@ func _on_Main_recieved(data): add_label(string) -func add_label(bbcode: String, name = "richtextlabel"): +func add_label(bbcode: String, name = "richtextlabel", size = Vector2(1000, 40)) -> RichTextLabel: var l = RichTextLabel.new() l.name = name - l.rect_min_size = Vector2(1000, 40) + l.rect_min_size = size l.install_effect(RichTextMatrix.new()) l.bbcode_enabled = true + l.scroll_active = false labels.add_child(l) - l.append_bbcode(bbcode) + l.connect("meta_clicked", self, "open_url") + l.bbcode_text = bbcode + l.fit_content_height = true tween.interpolate_property( scrollbar, "value", scrollbar.value, scrollbar.max_value, .5, Tween.TRANS_BOUNCE ) tween.start() + return l + + +func open_url(meta): + var err = OS.shell_open(meta) + if err == OK: + print("Opened link '%s' successfully!" % meta) + else: + printerr("Failed opening the link '%s'!" % meta) func _on_text_entered(t): @@ -51,3 +76,8 @@ func _on_whoami_text_entered(t): whoami.text = "Anonymous" t = t.strip_edges() whoami.text = t + + +func _on_Main_err(err: String): + add_label("[b][color=#ff6347]error:[i] %s" % err) + text.editable = false |