Merge multiplayer_spawner and lobby-map into develop #3
@@ -40,6 +40,8 @@ func _ready() -> void:
|
|||||||
|
|
||||||
check_command_line()
|
check_command_line()
|
||||||
|
|
||||||
|
multiplayer.server_relay = true
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if not steam_initialized:
|
if not steam_initialized:
|
||||||
return
|
return
|
||||||
@@ -153,7 +155,7 @@ func spawn_player(peer_id: int):
|
|||||||
add_child(new_player)
|
add_child(new_player)
|
||||||
new_player.position = Vector3.UP
|
new_player.position = Vector3.UP
|
||||||
new_player.set_player_name(player_name)
|
new_player.set_player_name(player_name)
|
||||||
new_player.set_multiplayer_authority(peer_id)
|
new_player.set_multiplayer_authority(peer_id, true)
|
||||||
new_player.setup_player()
|
new_player.setup_player()
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://csmfxg011xisf"]
|
[gd_scene load_steps=6 format=3 uid="uid://csmfxg011xisf"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dopyfulbw2mx5" path="res://player/player.gd" id="1_ulp21"]
|
[ext_resource type="Script" uid="uid://dopyfulbw2mx5" path="res://player/player.gd" id="1_ulp21"]
|
||||||
|
|
||||||
@@ -13,17 +13,6 @@ size = Vector3(0.5, 0.5, 0.5)
|
|||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_wnvi2"]
|
[sub_resource type="SphereMesh" id="SphereMesh_wnvi2"]
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ulp21"]
|
|
||||||
properties/0/path = NodePath(".:position")
|
|
||||||
properties/0/spawn = true
|
|
||||||
properties/0/replication_mode = 2
|
|
||||||
properties/1/path = NodePath(".:rotation")
|
|
||||||
properties/1/spawn = true
|
|
||||||
properties/1/replication_mode = 2
|
|
||||||
properties/2/path = NodePath("Label3D:text")
|
|
||||||
properties/2/spawn = true
|
|
||||||
properties/2/replication_mode = 2
|
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody3D"]
|
[node name="Player" type="CharacterBody3D"]
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
@@ -62,9 +51,6 @@ layers = 2
|
|||||||
mesh = SubResource("SphereMesh_wnvi2")
|
mesh = SubResource("SphereMesh_wnvi2")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
|
||||||
replication_config = SubResource("SceneReplicationConfig_ulp21")
|
|
||||||
|
|
||||||
[node name="Label3D" type="Label3D" parent="."]
|
[node name="Label3D" type="Label3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.887858, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.887858, 0)
|
||||||
billboard = 1
|
billboard = 1
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ class_name Player
|
|||||||
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
|
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||||
var camera_node: Camera3D
|
var camera_node: Camera3D
|
||||||
|
|
||||||
|
|
||||||
func setup_player():
|
func setup_player():
|
||||||
if is_multiplayer_authority():
|
if is_multiplayer_authority():
|
||||||
print("-> [%s] Authority granted. Setting up camera and input." % name)
|
print("-> [%s] Authority granted. Setting up camera and input." % name)
|
||||||
@@ -22,9 +21,13 @@ func set_player_name(player_name: String):
|
|||||||
$Label3D.text = player_name
|
$Label3D.text = player_name
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "unreliable")
|
||||||
|
func update_remote_transform(new_transform: Transform3D):
|
||||||
|
global_transform = new_transform
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
if !is_multiplayer_authority():
|
if is_multiplayer_authority():
|
||||||
return
|
|
||||||
# Apply gravity
|
# Apply gravity
|
||||||
if not is_on_floor():
|
if not is_on_floor():
|
||||||
velocity.y -= gravity * delta
|
velocity.y -= gravity * delta
|
||||||
@@ -48,9 +51,11 @@ func _physics_process(delta):
|
|||||||
# Air control
|
# Air control
|
||||||
velocity.x = lerp(velocity.x, direction.x * speed, delta * 5.0)
|
velocity.x = lerp(velocity.x, direction.x * speed, delta * 5.0)
|
||||||
velocity.z = lerp(velocity.z, direction.z * speed, delta * 5.0)
|
velocity.z = lerp(velocity.z, direction.z * speed, delta * 5.0)
|
||||||
|
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
|
|
||||||
|
update_remote_transform.rpc("unreliable", global_transform)
|
||||||
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if !is_multiplayer_authority():
|
if !is_multiplayer_authority():
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user