Improved UI
This commit is contained in:
@ -1,13 +1,18 @@
|
||||
extends NetworkNode
|
||||
|
||||
@export var ip := "127.0.0.1"
|
||||
@export var port := 4242
|
||||
@export var host: String
|
||||
@export var port: int
|
||||
|
||||
var socket := PacketPeerUDP.new()
|
||||
|
||||
func _init():
|
||||
super._init()
|
||||
socket.connect_to_host(ip, port)
|
||||
func _enter_tree():
|
||||
socket.connect_to_host(host, port)
|
||||
|
||||
for child in get_children():
|
||||
if !(child is PacketHandler):
|
||||
continue
|
||||
|
||||
set_handler(child.packet_type, child)
|
||||
|
||||
func _process(_delta):
|
||||
while socket.get_available_packet_count() > 0:
|
||||
|
@ -3,7 +3,6 @@ extends PacketHandler
|
||||
var auth_token: String
|
||||
|
||||
func _ready():
|
||||
%Client.set_handler(Packet.LOGIN, self)
|
||||
send_login()
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
|
@ -10,23 +10,22 @@ var history: Array[float] = []
|
||||
func _init():
|
||||
history.resize(HISTORY_SIZE)
|
||||
|
||||
func _ready():
|
||||
%Client.set_handler(Packet.PING, self)
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var id := data[0]
|
||||
var ping := get_time() - history[id]
|
||||
changed.emit(ping)
|
||||
|
||||
func send_ping():
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.put_8(Packet.PING)
|
||||
buffer.put_8(count)
|
||||
%Client.socket.put_packet(buffer.data_array)
|
||||
|
||||
history[count] = Time.get_unix_time_from_system()
|
||||
history[count] = get_time()
|
||||
count += 1
|
||||
|
||||
if count >= HISTORY_SIZE:
|
||||
count = 0
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var id := data[0]
|
||||
var ping := Time.get_unix_time_from_system() - history[id]
|
||||
changed.emit(ping)
|
||||
func get_time() -> float:
|
||||
return Time.get_unix_time_from_system()
|
||||
|
||||
|
@ -4,7 +4,6 @@ extends PacketHandler
|
||||
|
||||
func _ready():
|
||||
assert(player_scene)
|
||||
%Client.set_handler(Packet.PLAYER_STATE, self)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var player_name := data.get_string_from_utf8()
|
||||
|
@ -1,9 +0,0 @@
|
||||
class_name Packet
|
||||
|
||||
enum {
|
||||
PING = 1,
|
||||
LOGIN = 2,
|
||||
LOGOUT = 3,
|
||||
PLAYER_STATE = 10,
|
||||
PLAYER_MOVE = 11,
|
||||
}
|
@ -1,5 +1,16 @@
|
||||
class_name PacketHandler
|
||||
extends Node
|
||||
|
||||
enum Packet {
|
||||
INVALID = 0,
|
||||
PING = 1,
|
||||
LOGIN = 2,
|
||||
LOGOUT = 3,
|
||||
PLAYER_STATE = 10,
|
||||
PLAYER_MOVE = 11,
|
||||
}
|
||||
|
||||
@export var packet_type: Packet
|
||||
|
||||
func handle_packet(_data: PackedByteArray, _peer: PacketPeer):
|
||||
pass
|
Reference in New Issue
Block a user