multiplayer

This commit is contained in:
Rendo 2025-11-22 01:07:18 +05:00
commit 0dc6247f91
22 changed files with 298 additions and 14 deletions

View file

@ -0,0 +1,7 @@
extends Node
func _ready() -> void:
if not multiplayer.is_server():
return
Lobby.add_loaded_player(multiplayer.get_unique_id())

View file

@ -0,0 +1 @@
uid://bdxy621fthtrv

View file

@ -0,0 +1,29 @@
extends Node
const MAX_PLAYERS: int = 10
const PORT: int = 7777
signal lobby_created
signal lobby_joined
signal lobby_closed
func host() -> void:
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
peer.create_server(PORT,MAX_PLAYERS)
multiplayer.multiplayer_peer = peer
lobby_created.emit()
func join(ip: String) -> void:
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
peer.create_client(ip,PORT)
multiplayer.multiplayer_peer = peer
lobby_joined.emit()
func leave() -> void:
multiplayer.multiplayer_peer = OfflineMultiplayerPeer.new()
lobby_closed.emit()
@rpc("authority","call_local","reliable")
func start_game() -> void:
get_tree().change_scene_to_file("res://levels/prototype_scene.tscn")

View file

@ -0,0 +1 @@
uid://c5sfxrl7hky6p

View file

@ -0,0 +1,15 @@
extends Node3D
func _ready() -> void:
if not multiplayer.is_server():
return
spawn_player(multiplayer.get_unique_id())
for i in multiplayer.get_peers():
spawn_player(i)
func spawn_player(id) -> void:
var player: PackedScene = load("res://scenes/player.tscn")
var inst = player.instantiate()
inst.name = str(id)
get_tree().current_scene.add_child.call_deferred(inst,true)

View file

@ -0,0 +1 @@
uid://ypgm3aplt78m