add server console input
This commit is contained in:
parent
809da74969
commit
ed41775543
@ -28,6 +28,7 @@ Networker="*res://scripts/globals/networker.gd"
|
||||
Cursorer="*res://scripts/globals/cursorer.gd"
|
||||
Referencer="*res://scripts/globals/referencer.gd"
|
||||
Inputer="*res://scripts/globals/inputer.gd"
|
||||
Consoler="*res://scripts/globals/consoler.gd"
|
||||
|
||||
[debug]
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
[sub_resource type="SystemFont" id="SystemFont_mq8v6"]
|
||||
font_names = PackedStringArray("Monospace")
|
||||
font_weight = 600
|
||||
subpixel_positioning = 0
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel"]
|
||||
clip_contents = false
|
||||
|
||||
21
scripts/globals/consoler.gd
Normal file
21
scripts/globals/consoler.gd
Normal file
@ -0,0 +1,21 @@
|
||||
extends Node
|
||||
|
||||
var input_thread: Thread
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
input_thread = Thread.new()
|
||||
input_thread.start(_process_input)
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
input_thread.wait_to_finish()
|
||||
|
||||
|
||||
func _process_input() -> void:
|
||||
var text := ""
|
||||
while text != "quit":
|
||||
print("Insert some text: ")
|
||||
text = OS.read_string_from_stdin().strip_edges()
|
||||
Referencer.chat.send_server_message(text)
|
||||
get_tree().quit()
|
||||
@ -64,19 +64,28 @@ func close() -> void:
|
||||
_msg_scroll.vertical_scroll_mode = ScrollContainer.SCROLL_MODE_SHOW_NEVER
|
||||
|
||||
|
||||
func send_server_message(message: String) -> void:
|
||||
_send_message.rpc(message, true)
|
||||
|
||||
|
||||
@rpc("any_peer", "call_local", "reliable", 1)
|
||||
func _send_message(message: String) -> void:
|
||||
var player_name := (
|
||||
Networker.players[multiplayer.get_remote_sender_id()]["name"] as String
|
||||
)
|
||||
var message_node := _make_message_node(player_name, message)
|
||||
func _send_message(message: String, server: bool = false) -> void:
|
||||
var player_name := ""
|
||||
if not server:
|
||||
player_name = (
|
||||
Networker.players[multiplayer.get_remote_sender_id()]["name"] as String
|
||||
)
|
||||
var message_node := _make_message_node(message, player_name)
|
||||
_msg_container.add_child(message_node)
|
||||
print(player_name + ": " + message)
|
||||
|
||||
|
||||
func _make_message_node(player_name: String, message: String) -> RichTextLabel:
|
||||
func _make_message_node(message: String, player_name: String = "") -> RichTextLabel:
|
||||
var node := _chat_message_scene.instantiate() as RichTextLabel
|
||||
node.text = "[b]" + player_name + ":[/b] " + _escape_bbcode_tags(message)
|
||||
if player_name:
|
||||
node.text = "[b]" + player_name + ":[/b] " + _escape_bbcode_tags(message)
|
||||
else:
|
||||
node.text = message
|
||||
|
||||
return node
|
||||
|
||||
@ -105,7 +114,7 @@ func _on_message_edit_text_submitted(message: String) -> void:
|
||||
_message_history.append(message)
|
||||
_history_position = 0
|
||||
close()
|
||||
_send_message.rpc(message)
|
||||
_send_message.rpc(message, false)
|
||||
|
||||
|
||||
func _on_message_margin_minimum_size_changed() -> void:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user