Added player identification
This commit is contained in:
35
client/network/PlayerAdd.gd
Normal file
35
client/network/PlayerAdd.gd
Normal file
@ -0,0 +1,35 @@
|
||||
extends PacketHandler
|
||||
|
||||
@export var player_scene: PackedScene
|
||||
|
||||
func _ready():
|
||||
assert(player_scene)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
var player_id := buffer.get_string()
|
||||
var player_name := buffer.get_string()
|
||||
|
||||
var server_position := Vector3()
|
||||
server_position.x = buffer.get_float()
|
||||
server_position.y = buffer.get_float()
|
||||
server_position.z = buffer.get_float()
|
||||
|
||||
print("[%s] Add player: %s %s @ %v" % [Global.username, player_id, player_name, server_position])
|
||||
|
||||
var player := spawn_player()
|
||||
player.position = server_position
|
||||
player.set_character_name(player_name)
|
||||
|
||||
if player_id == Global.account_id:
|
||||
Global.player = player
|
||||
var controller := PlayerController.new()
|
||||
controller.character = Global.player
|
||||
Global.player.add_child(controller)
|
||||
|
||||
func spawn_player() -> Player:
|
||||
var player = player_scene.instantiate()
|
||||
%Players.add_child(player)
|
||||
return player
|
Reference in New Issue
Block a user