mtd/Scripts/chatbox.gd

37 lines
1.0 KiB
GDScript

extends Control
class_name Chatbox
signal opened
signal closed
var text_selected := false
var username := "default"
func _input(event: InputEvent) -> void:
if event.is_action_pressed("Open Text Chat"):
if text_selected:
closed.emit()
$VBoxContainer/LineEdit.deselect()
$VBoxContainer/LineEdit.visible = false
text_selected = false
if $VBoxContainer/LineEdit.text.length() != 0:
if $VBoxContainer/LineEdit.text.begins_with("/"):
Game.parse_command($VBoxContainer/LineEdit.text, multiplayer.get_unique_id())
else:
rpc("append_message", username, $VBoxContainer/LineEdit.text)
$VBoxContainer/LineEdit.clear()
else:
opened.emit()
$VBoxContainer/LineEdit.visible = true
$VBoxContainer/LineEdit.grab_focus()
text_selected = true
func change_username(old_name, new_name):
append_message("server", old_name + " has changed their display name to " + new_name)
@rpc("reliable","call_local","any_peer")
func append_message(user, content):
$VBoxContainer/RichTextLabel.append_text("[" + user + "] " + content + "\n")