From 33fee89633402e9d6eb1d5acad3e9fe5edd62055 Mon Sep 17 00:00:00 2001 From: Chris Bell Date: Thu, 7 Aug 2025 19:25:02 -0500 Subject: [PATCH] Player spawn test --- splunk/game-logic/game_manager.gd | 1 + splunk/game-logic/game_manager.gd.uid | 1 + splunk/networking/steam-manager.gd | 7 +++++++ splunk/player/Player.tscn | 2 +- splunk/player/player.gd | 8 ++++++++ 5 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 splunk/game-logic/game_manager.gd create mode 100644 splunk/game-logic/game_manager.gd.uid diff --git a/splunk/game-logic/game_manager.gd b/splunk/game-logic/game_manager.gd new file mode 100644 index 0000000..61510e1 --- /dev/null +++ b/splunk/game-logic/game_manager.gd @@ -0,0 +1 @@ +extends Node diff --git a/splunk/game-logic/game_manager.gd.uid b/splunk/game-logic/game_manager.gd.uid new file mode 100644 index 0000000..d0614ef --- /dev/null +++ b/splunk/game-logic/game_manager.gd.uid @@ -0,0 +1 @@ +uid://dsl58fvqxa6ul diff --git a/splunk/networking/steam-manager.gd b/splunk/networking/steam-manager.gd index 9118773..fb31dd2 100644 --- a/splunk/networking/steam-manager.gd +++ b/splunk/networking/steam-manager.gd @@ -1,5 +1,7 @@ extends Node +@onready var player_scene: PackedScene = preload("res://player/Player.tscn") + var is_owned: bool = false var steam_app_id: int = 480 var steam_id: int = 0 @@ -230,6 +232,11 @@ func _on_lobby_chat_update(lobby_id_update: int, user_changed_id: int, user_maki func _on_peer_connected(id: int) -> void: print("[Multiplayer] ✅ Peer connected: %s" % id) + var new_player = player_scene.instantiate() as Player + new_player.set_multiplayer_authority(id) + $".".add_child(new_player) + new_player.position = Vector3(0,1,0) + # It's good practice to re-check lobby members when a peer connects successfully. get_lobby_members() diff --git a/splunk/player/Player.tscn b/splunk/player/Player.tscn index df1ce5f..0dfa275 100644 --- a/splunk/player/Player.tscn +++ b/splunk/player/Player.tscn @@ -23,7 +23,7 @@ properties/1/spawn = true properties/1/replication_mode = 2 properties/2/path = NodePath("Label3D:text") properties/2/spawn = true -properties/2/replication_mode = 1 +properties/2/replication_mode = 2 [node name="Player" type="CharacterBody3D"] collision_layer = 2 diff --git a/splunk/player/player.gd b/splunk/player/player.gd index 4c561a4..990cfed 100644 --- a/splunk/player/player.gd +++ b/splunk/player/player.gd @@ -1,4 +1,5 @@ extends CharacterBody3D +class_name Player @export var speed = 5.0 @export var jump_velocity = 4.5 @@ -8,12 +9,17 @@ var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") var camera_node: Camera3D func _ready(): + if !is_multiplayer_authority(): + pass Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) camera_node = $Camera3D # Assuming Camera3D is a direct child + camera_node.current = true $Label3D.text = SteamManager.steam_username func _physics_process(delta): + if !is_multiplayer_authority(): + pass # Apply gravity if not is_on_floor(): velocity.y -= gravity * delta @@ -41,6 +47,8 @@ func _physics_process(delta): move_and_slide() func _input(event): + if !is_multiplayer_authority(): + pass if event is InputEventMouseMotion: # Rotate the CharacterBody3D around the Y-axis for horizontal look rotate_y(-event.relative.x * mouse_sensitivity)