diff --git a/scenes/maps/base/map_loader.gd b/scenes/maps/base/map_loader.gd index b06f91a..4ddf7b2 100644 --- a/scenes/maps/base/map_loader.gd +++ b/scenes/maps/base/map_loader.gd @@ -26,9 +26,7 @@ func _ready() -> void: if err != OK: push_error("Couldn't load object spawner") # add objects spawner - if multiplayer.is_server(): - _spawn_player(1) - else: + if not OS.has_feature("dedicated_server"): _request_spawn.rpc_id(1, multiplayer.get_unique_id()) pass # Replace with function body. diff --git a/scenes/utils/menus/main/main_menu.gd b/scenes/utils/menus/main/main_menu.gd index 7f9192c..a493bed 100644 --- a/scenes/utils/menus/main/main_menu.gd +++ b/scenes/utils/menus/main/main_menu.gd @@ -12,7 +12,8 @@ func _ready() -> void: var err := GameServerManager.create_server(player_manager) if err != OK: push_error("couldn't create a server") - change_level.call_deferred(load(path)) + change_level.call_deferred(path) + print(get_tree().get_root()) else: var map_dir := DirAccess.open("res://scenes/maps/maps/") if map_dir: @@ -45,18 +46,26 @@ func _on_create_button_pressed() -> void: if err != OK: push_error("couldn't create a server") $UI.hide() - change_level.call_deferred(load(path)) + change_level.call_deferred(path) # Call this function deferred and only on the main authority (server). -func change_level(scene: PackedScene): - +func change_level(path: String): # Remove old level if any. var level = $LevelLoader/CurrentLevel + print("cleaning up the mount node") for c in level.get_children(): level.remove_child(c) c.queue_free() # Add new level. - level.add_child(scene.instantiate()) + if not ResourceLoader.exists(path): + print(ERR_DOES_NOT_EXIST) + var scene: PackedScene = ResourceLoader.load(path) + if scene.can_instantiate(): + var node: Node3D = scene.instantiate() + print("loading map: " + node.name) + level.add_child(node) + else: + print("Can't initialize") func _on_text_edit_text_changed() -> void: diff --git a/scripts/game_server_manager.gd b/scripts/game_server_manager.gd index e372ef0..68a0851 100644 --- a/scripts/game_server_manager.gd +++ b/scripts/game_server_manager.gd @@ -34,9 +34,8 @@ func _on_player_disconnected(id): remove_player.rpc_id(1, id) func _on_player_connected(id): - pass - #if multiplayer.is_server(): - #GameServerManager.load_map.rpc_id(id, GameServerManager.current_map) + if multiplayer.is_server(): + print("Player is connected with id: " + str(id)) func _ready() -> void: multiplayer.peer_connected.connect(_on_player_connected) @@ -66,7 +65,8 @@ func create_server(player_data: PlayerManager) -> Error: func join_server(player_data: PlayerManager, ip: String, port: int) -> Error: var peer = ENetMultiplayerPeer.new() - var err = peer.create_client("127.0.0.1", 27015) + print("trying to connect to: " + ip + ":" + str(port)) + var err = peer.create_client(ip, port) if err != OK: return err player_state_global.id = multiplayer.get_remote_sender_id()