WIP: Not so much progress
This commit is contained in:
@@ -11,13 +11,12 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_5mxqd")
|
||||
|
||||
[node name="Start" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 230.0
|
||||
offset_top = 296.0
|
||||
offset_right = 339.0
|
||||
offset_bottom = 368.0
|
||||
text = "Start"
|
||||
[node name="PublishPort" type="TextEdit" parent="."]
|
||||
offset_left = 242.0
|
||||
offset_top = 63.0
|
||||
offset_right = 531.0
|
||||
offset_bottom = 134.0
|
||||
text = "8888"
|
||||
|
||||
[node name="Host" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
@@ -35,9 +34,15 @@ offset_right = 224.0
|
||||
offset_bottom = 220.0
|
||||
text = "Join"
|
||||
|
||||
[node name="HostToJoin" type="TextEdit" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 239.0
|
||||
offset_top = 147.0
|
||||
offset_right = 528.0
|
||||
offset_bottom = 218.0
|
||||
|
||||
[connection signal="player_connected" from="." to="." method="_on_player_connected"]
|
||||
[connection signal="player_disconnected" from="." to="." method="_on_player_disconnected"]
|
||||
[connection signal="server_disconnected" from="." to="." method="_on_server_disconnected"]
|
||||
[connection signal="pressed" from="Start" to="." method="_on_start_pressed"]
|
||||
[connection signal="pressed" from="Host" to="." method="_on_host_pressed"]
|
||||
[connection signal="pressed" from="Join" to="." method="_on_join_pressed"]
|
||||
|
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://ccm77j5rkh21w"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://ccm77j5rkh21w"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/character_controller.gd" id="1_sue4n"]
|
||||
[ext_resource type="PackedScene" uid="uid://bmqutwuj28san" path="res://scenes/utils/view_model_camera.tscn" id="4_al83x"]
|
||||
@@ -9,6 +9,13 @@
|
||||
radius = 0.368364
|
||||
height = 1.8
|
||||
|
||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_e7ysa"]
|
||||
properties/0/path = NodePath(".:position")
|
||||
properties/0/spawn = true
|
||||
properties/0/replication_mode = 1
|
||||
|
||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_enush"]
|
||||
|
||||
[node name="Character" type="Node3D"]
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
@@ -30,3 +37,10 @@ script = ExtResource("4_uwcjh")
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.0287516, -0.136104, -0.276055)
|
||||
visible = false
|
||||
script = null
|
||||
|
||||
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
||||
replication_config = SubResource("SceneReplicationConfig_e7ysa")
|
||||
|
||||
[node name="PlayerInput" type="MultiplayerSynchronizer" parent="."]
|
||||
root_path = NodePath("../MultiplayerSynchronizer")
|
||||
replication_config = SubResource("SceneReplicationConfig_enush")
|
||||
|
@@ -1,18 +1,32 @@
|
||||
extends Control
|
||||
|
||||
|
||||
@onready var lobby_container = $VBoxContainer
|
||||
var current_players = {}
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
multiplayer.peer_connected.connect(_on_player_connected)
|
||||
multiplayer.peer_disconnected.connect(_on_player_disconnected)
|
||||
multiplayer.connected_to_server.connect(_on_connected_ok)
|
||||
multiplayer.connection_failed.connect(_on_connected_fail)
|
||||
multiplayer.server_disconnected.connect(_on_server_disconnected)
|
||||
#multiplayer.peer_connected.connect(_on_player_connected)
|
||||
#multiplayer.peer_disconnected.connect(_on_player_disconnected)
|
||||
#multiplayer.connected_to_server.connect(_on_connected_ok)
|
||||
#multiplayer.connection_failed.connect(_on_connected_fail)
|
||||
#multiplayer.server_disconnected.connect(_on_server_disconnected)
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
var labels : Array[Label] = []
|
||||
if current_players != ServerManager.Players:
|
||||
for player in ServerManager.Players:
|
||||
print("adding a player")
|
||||
var label = Label.new()
|
||||
label.text = str(player)
|
||||
labels.push_back(label)
|
||||
|
||||
for label in labels:
|
||||
print(label)
|
||||
lobby_container.add_child(label)
|
||||
current_players = ServerManager.Players
|
||||
|
||||
pass
|
||||
|
||||
var peer = ENetMultiplayerPeer.new()
|
||||
@@ -21,8 +35,6 @@ signal player_connected(peer_id, player_info)
|
||||
signal player_disconnected(peer_id)
|
||||
signal server_disconnected
|
||||
|
||||
const PORT = 7000
|
||||
const DEFAULT_SERVER_IP = "127.0.0.1" # IPv4 localhost
|
||||
const MAX_CONNECTIONS = 20
|
||||
|
||||
var players_loaded = 0
|
||||
@@ -30,16 +42,26 @@ var players_loaded = 0
|
||||
var player_info = {"name": "Name"}
|
||||
#var players = {}
|
||||
|
||||
# Create a server instance here
|
||||
func _on_host_pressed() -> void:
|
||||
var PORT = $PublishPort.text
|
||||
var SERVER_IP = $HostToJoin
|
||||
var peer = ENetMultiplayerPeer.new()
|
||||
var error = peer.create_server(PORT, MAX_CONNECTIONS)
|
||||
var error = peer.create_server(int(PORT), MAX_CONNECTIONS)
|
||||
if error:
|
||||
print(error)
|
||||
multiplayer.multiplayer_peer = peer
|
||||
send_player_information.rpc("host", multiplayer.get_unique_id())
|
||||
ServerManager.Players[1] = player_info
|
||||
player_connected.emit(1, player_info)
|
||||
if "--server" in OS.get_cmdline_user_args():
|
||||
print("headless")
|
||||
multiplayer.get_unique_id()
|
||||
ServerManager.Players[multiplayer.get_unique_id()] = {"name": "host"}
|
||||
start_game()
|
||||
|
||||
#else:
|
||||
#multiplayer.multiplayer_peer = peer
|
||||
#send_player_information.rpc("main", multiplayer.get_unique_id())
|
||||
#ServerManager.Players[1] = player_info
|
||||
#play er_connected.emit(1, player_info)
|
||||
return
|
||||
|
||||
func remove_multiplayer_peer():
|
||||
multiplayer.multiplayer_peer = null
|
||||
@@ -62,17 +84,19 @@ func player_loaded():
|
||||
func _on_join_pressed() -> void:
|
||||
var address = '127.0.0.1'
|
||||
var peer = ENetMultiplayerPeer.new()
|
||||
var error = peer.create_client(address, PORT)
|
||||
var PORT = $PublishPort.text
|
||||
var error = peer.create_client(address, int(PORT))
|
||||
if error:
|
||||
print(error)
|
||||
multiplayer.multiplayer_peer = peer
|
||||
ServerManager.add_player.rpc_id(1, multiplayer.get_unique_id(), "test")
|
||||
start_game()
|
||||
#send_player_information.rpc_id(1, "test", multiplayer.get_unique_id())
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
func _on_player_connected(id: Variant, player_info: Variant) -> void:
|
||||
print(player_info)
|
||||
send_player_information.rpc_id(1, "test", multiplayer.get_unique_id())
|
||||
_register_player.rpc_id(id, player_info)
|
||||
print_debug("a player is trying to connect")
|
||||
|
||||
@rpc("any_peer", "reliable")
|
||||
func _register_player(new_player_info):
|
||||
@@ -104,6 +128,7 @@ func _on_server_disconnected() -> void:
|
||||
@rpc("call_local", "any_peer")
|
||||
func send_player_information(name, id):
|
||||
if !ServerManager.Players.has(id):
|
||||
print(name)
|
||||
ServerManager.Players[id] = {
|
||||
"name": name,
|
||||
"id": id,
|
||||
@@ -115,7 +140,9 @@ func send_player_information(name, id):
|
||||
|
||||
@rpc("call_local", "reliable", "any_peer")
|
||||
func start_game():
|
||||
get_tree().change_scene_to_file("res://scenes/maps/el_test.tscn")
|
||||
print("test")
|
||||
if multiplayer.is_server():
|
||||
get_tree().change_scene_to_file("res://scenes/maps/el_test.tscn")
|
||||
|
||||
func _on_start_pressed() -> void:
|
||||
start_game.rpc()
|
||||
|
Reference in New Issue
Block a user