Added basic chat
This commit is contained in:
21
client/network/Chat.gd
Normal file
21
client/network/Chat.gd
Normal file
@ -0,0 +1,21 @@
|
||||
extends PacketHandler
|
||||
|
||||
signal message_received(message: String)
|
||||
|
||||
func send_message(message: String):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.put_8(Packet.CHAT)
|
||||
buffer.put_data(message.to_utf8_buffer())
|
||||
%Client.send(buffer.data_array)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
var player_id := buffer.get_string()
|
||||
var player := Global.players.get_player(player_id)
|
||||
var message := buffer.get_utf8_string()
|
||||
|
||||
print("[%s] %s: %s" % [Global.username, player.name, message])
|
||||
message_received.emit("[color=#808080]%s:[/color] %s" % [player.name, message])
|
||||
|
@ -25,7 +25,11 @@ func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
player.position = server_position
|
||||
player.set_character_name(player_name)
|
||||
|
||||
if player_id == Global.account_id:
|
||||
func spawn_player(id: String) -> Player:
|
||||
var player = player_scene.instantiate()
|
||||
player.id = id
|
||||
|
||||
if id == Global.account_id:
|
||||
Global.player = player
|
||||
player.controller = PlayerController.new()
|
||||
main_player_spawned.emit(player)
|
||||
@ -34,9 +38,5 @@ func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
|
||||
player.controller.character = player
|
||||
player.add_child(player.controller)
|
||||
|
||||
func spawn_player(id: String) -> Player:
|
||||
var player = player_scene.instantiate()
|
||||
player.id = id
|
||||
%Players.add(player)
|
||||
return player
|
||||
|
@ -16,6 +16,10 @@ func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var z := buffer.get_float()
|
||||
|
||||
var player := Global.players.get_player(player_id)
|
||||
|
||||
if !player:
|
||||
return
|
||||
|
||||
var controller := player.controller as ProxyController
|
||||
controller.server_position.x = x
|
||||
controller.server_position.z = z
|
||||
|
@ -11,6 +11,7 @@ enum Packet {
|
||||
PLAYER_MOVE = 12,
|
||||
PLAYER_JUMP = 13,
|
||||
PLAYER_ATTACK = 14,
|
||||
CHAT = 20,
|
||||
}
|
||||
|
||||
@export var packet_type: Packet
|
||||
|
Reference in New Issue
Block a user