mirror of
https://port.numenaute.org/aleajactaest/bazar_alea.git
synced 2024-11-22 07:06:13 +00:00
adding on client input ip/port to connect to server
This commit is contained in:
parent
70f59e12af
commit
91e04a00a7
3 changed files with 43 additions and 83 deletions
|
@ -3,6 +3,9 @@ extends Window
|
|||
var focus_ok:bool = false
|
||||
var last_event = null
|
||||
|
||||
@export var listen_ip:String = ""
|
||||
@export var listen_port:int = 33333
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
@ -17,14 +20,25 @@ func _on_button_pressed():
|
|||
if $VBoxContainer/TextEdit.get_text() != "":
|
||||
self.hide()
|
||||
#get_parent().get_node("CharacterBody3D").set_enable_event(true)
|
||||
get_parent().connect_enet($VBoxContainer/TextEdit.get_text())
|
||||
get_parent().connect_enet($VBoxContainer/TextEdit.get_text(), listen_ip, listen_port)
|
||||
|
||||
|
||||
func check_testedit():
|
||||
if len($VBoxContainer/TextEdit.get_text()) == 0:
|
||||
$VBoxContainer/Button.set_disabled(true)
|
||||
return
|
||||
if len($VBoxContainer/Address.get_text()) == 0:
|
||||
$VBoxContainer/Button.set_disabled(true)
|
||||
return
|
||||
listen_ip = $VBoxContainer/Address.get_text()
|
||||
listen_port = int($VBoxContainer/Port.get_text())
|
||||
if listen_port <= 0 || listen_port >= 65536 :
|
||||
$VBoxContainer/Button.set_disabled(true)
|
||||
return
|
||||
$VBoxContainer/Button.set_disabled(false)
|
||||
|
||||
func _on_text_edit_text_changed(value:String):
|
||||
if len(value) > 0:
|
||||
$VBoxContainer/Button.disabled = false
|
||||
else:
|
||||
$VBoxContainer/Button.disabled = true
|
||||
check_testedit()
|
||||
|
||||
|
||||
func _on_focus_entered():
|
||||
|
|
|
@ -14,50 +14,26 @@ var account_confirmed:bool = false
|
|||
|
||||
const PLAYER = preload("res://scenes/player.tscn")
|
||||
|
||||
const PORT = 33333
|
||||
const ADDR = "127.0.0.1"
|
||||
|
||||
var dtls := PacketPeerDTLS.new()
|
||||
var udp := PacketPeerUDP.new()
|
||||
|
||||
|
||||
func test_cert(filename):
|
||||
print("------", filename)
|
||||
enet = ENetConnection.new()
|
||||
print(enet)
|
||||
#var cert: X509Certificate = X509Certificate.new()
|
||||
#errorEnet = cert.load(filename)
|
||||
#print("load cert:", errorEnet)
|
||||
#print(cert)
|
||||
#var client_tls_options = TLSOptions.client_unsafe(cert)
|
||||
#print(client_tls_options)
|
||||
func create_server_enet(address, port):
|
||||
print("------ create_server_enet")
|
||||
errorEnet = enet.create_host(10)
|
||||
if errorEnet != OK:
|
||||
print("ERROR ENET.create_host: ", errorEnet)
|
||||
return
|
||||
#enet.connect_to_host(ADDR, PORT)
|
||||
#errorEnet = enet.dtls_client_setup(ADDR, client_tls_options)
|
||||
#print("dtls_client_setup:", errorEnet)
|
||||
#if errorEnet != OK:
|
||||
# print("ERROR ENET: ", errorEnet)
|
||||
# return
|
||||
dataEnet = enet.connect_to_host(ADDR, PORT, 10)
|
||||
print("Connect to : " + address + " : " + str(port))
|
||||
dataEnet = enet.connect_to_host(address, port, 10)
|
||||
print(dataEnet)
|
||||
if not dataEnet.is_active():
|
||||
print("ERROR enet.connect_to_host: ", dataEnet.is_active())
|
||||
return
|
||||
|
||||
|
||||
func create_server_enet():
|
||||
print("------ create_server_enet")
|
||||
test_cert("res://cert.crt")
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
#test_cert("res://cert.crt")
|
||||
create_server_enet()
|
||||
pass # Replace with function body.
|
||||
enet = ENetConnection.new()
|
||||
|
||||
|
||||
func decode_msg(data:PackedByteArray):
|
||||
|
@ -197,6 +173,8 @@ func get_event_received():
|
|||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
if not dataEnet:
|
||||
return
|
||||
#print("state:", dataEnet.get_state())
|
||||
get_player_position()
|
||||
if dataEnet.get_state() == ENetPacketPeer.STATE_CONNECTED:
|
||||
|
@ -246,54 +224,8 @@ func _process_ter(_delta):
|
|||
return
|
||||
|
||||
|
||||
func _process_bis(_delta):
|
||||
if not dataEnet.is_active():
|
||||
create_server_enet()
|
||||
elif dataEnet.get_state() == ENetPacketPeer.STATE_CONNECTING:
|
||||
var res = enet.service(1)
|
||||
print(res)
|
||||
elif dataEnet.get_state() == ENetPacketPeer.STATE_CONNECTED:
|
||||
var res = enet.service(1)
|
||||
print(res)
|
||||
var data:PackedByteArray = PackedByteArray()
|
||||
data.append(len(player_name))
|
||||
data.append(123)
|
||||
errorEnet = dataEnet.send(1, data, 1)
|
||||
if errorEnet != OK:
|
||||
print("ERROR ENET: ", errorEnet)
|
||||
return
|
||||
#print("<> get_state: ", dataEnet.get_state())
|
||||
else:
|
||||
print("get_state: ", dataEnet.get_state())
|
||||
return
|
||||
|
||||
if not connected:
|
||||
if player_name != "":
|
||||
create_server_enet()
|
||||
return
|
||||
var res = enet.service(1)
|
||||
print(res)
|
||||
return
|
||||
if not connected:
|
||||
if player_name != "":
|
||||
create_server_enet()
|
||||
else:
|
||||
var data:PackedByteArray = PackedByteArray()
|
||||
data.append(len(player_name))
|
||||
data.append(123)
|
||||
#print(len(data))
|
||||
print("active:", dataEnet.is_active())
|
||||
print("state:", dataEnet.get_state())
|
||||
print("address:", dataEnet.get_remote_address())
|
||||
print("port:", dataEnet.get_remote_port())
|
||||
errorEnet = dataEnet.send(1, data, 1)
|
||||
if errorEnet != OK:
|
||||
print("ERROR ENET: ", errorEnet)
|
||||
return
|
||||
#enet.socket_send(ADDR, PORT, data)
|
||||
|
||||
|
||||
func connect_enet(_name:String):
|
||||
func connect_enet(_name:String, listen_ip:String, listen_port:int):
|
||||
player_name = _name
|
||||
create_server_enet(listen_ip, listen_port)
|
||||
print("My name:" + player_name)
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ environment = SubResource("Environment_12j7q")
|
|||
[node name="Window" type="Window" parent="."]
|
||||
title = "Connexion"
|
||||
initial_position = 1
|
||||
size = Vector2i(300, 100)
|
||||
size = Vector2i(300, 200)
|
||||
script = ExtResource("3_uwnj8")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Window"]
|
||||
|
@ -71,6 +71,18 @@ layout_mode = 2
|
|||
text = "Login"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Address" type="LineEdit" parent="Window/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "127.0.0.1"
|
||||
placeholder_text = "Address"
|
||||
|
||||
[node name="Port" type="LineEdit" parent="Window/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "33333"
|
||||
placeholder_text = "Address"
|
||||
|
||||
[node name="TextEdit" type="LineEdit" parent="Window/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
@ -85,5 +97,7 @@ text = "OK"
|
|||
[connection signal="focus_exited" from="Window" to="Window" method="_on_focus_exited"]
|
||||
[connection signal="mouse_entered" from="Window" to="Window" method="_on_mouse_entered"]
|
||||
[connection signal="mouse_exited" from="Window" to="Window" method="_on_mouse_exited"]
|
||||
[connection signal="text_changed" from="Window/VBoxContainer/Address" to="Window" method="_on_text_edit_text_changed"]
|
||||
[connection signal="text_changed" from="Window/VBoxContainer/Port" to="Window" method="_on_text_edit_text_changed"]
|
||||
[connection signal="text_changed" from="Window/VBoxContainer/TextEdit" to="Window" method="_on_text_edit_text_changed"]
|
||||
[connection signal="pressed" from="Window/VBoxContainer/Button" to="Window" method="_on_button_pressed"]
|
||||
|
|
Loading…
Reference in a new issue