Improved UI

This commit is contained in:
2024-01-25 12:10:29 +01:00
parent 1d0521c0bb
commit b7e7b8abd3
11 changed files with 98 additions and 78 deletions

View File

@ -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:

View File

@ -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):

View File

@ -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()

View File

@ -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()

View File

@ -1,9 +0,0 @@
class_name Packet
enum {
PING = 1,
LOGIN = 2,
LOGOUT = 3,
PLAYER_STATE = 10,
PLAYER_MOVE = 11,
}

View File

@ -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