2023-06-07 00:13:37 +10:00
|
|
|
class_name HumanController
|
|
|
|
extends PlayerController
|
|
|
|
|
2023-06-08 15:44:43 +10:00
|
|
|
signal ready_button_pressed(int)
|
|
|
|
signal chat_message_submitted(String)
|
|
|
|
|
|
|
|
@onready var ready_button = $CanvasLayer/UI/HBoxContainer/LobbyReadyButton
|
|
|
|
@onready var ready_label = $CanvasLayer/UI/HBoxContainer/LobbyReadyLabel
|
|
|
|
@onready var canvas = $CanvasLayer
|
|
|
|
@onready var chat_box = $CanvasLayer/UI/VBoxContainer/RichTextLabel
|
|
|
|
|
2023-06-07 01:24:11 +10:00
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
if not is_multiplayer_authority():
|
2023-06-08 15:44:43 +10:00
|
|
|
canvas.visible = false
|
2023-06-07 01:24:11 +10:00
|
|
|
return
|
|
|
|
$Camera2D.make_current()
|
|
|
|
|
|
|
|
|
|
|
|
@rpc("call_local")
|
2023-06-08 15:44:43 +10:00
|
|
|
func ready_self():
|
|
|
|
ready_button_pressed.emit(player_info["id"])
|
2023-06-07 01:24:11 +10:00
|
|
|
|
|
|
|
|
|
|
|
@rpc("any_peer")
|
2023-06-08 15:44:43 +10:00
|
|
|
func update_ready_label(readied_players, total_players):
|
|
|
|
ready_label.text = str(readied_players) + "/" + str(total_players)
|
2023-06-07 01:24:11 +10:00
|
|
|
|
|
|
|
|
|
|
|
func _on_lobby_ready_button_pressed() -> void:
|
2023-06-08 15:44:43 +10:00
|
|
|
rpc("ready_self")
|
|
|
|
ready_button.visible = false
|
|
|
|
|
|
|
|
|
|
|
|
func add_chat_line(line: String) -> void:
|
|
|
|
chat_box.text += line
|
|
|
|
|
|
|
|
|
|
|
|
func _on_line_edit_text_submitted(new_text: String) -> void:
|
|
|
|
var msg = "[" + player_info["username"] + "] " + new_text + "\n"
|
|
|
|
$CanvasLayer/UI/VBoxContainer/LineEdit.text = ""
|
|
|
|
chat_message_submitted.emit(msg)
|