Diffstat (limited to 'Chat.gd')
-rw-r--r--Chat.gd38
1 files changed, 34 insertions, 4 deletions
diff --git a/Chat.gd b/Chat.gd
index d7084eb..95f5727 100644
--- a/Chat.gd
+++ b/Chat.gd
@@ -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