multiplayer
This commit is contained in:
parent
aa35ee5975
commit
0dc6247f91
22 changed files with 298 additions and 14 deletions
7
scripts/multiplayer/loaded_notifier.gd
Normal file
7
scripts/multiplayer/loaded_notifier.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
extends Node
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if not multiplayer.is_server():
|
||||
return
|
||||
Lobby.add_loaded_player(multiplayer.get_unique_id())
|
||||
1
scripts/multiplayer/loaded_notifier.gd.uid
Normal file
1
scripts/multiplayer/loaded_notifier.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bdxy621fthtrv
|
||||
29
scripts/multiplayer/lobby.gd
Normal file
29
scripts/multiplayer/lobby.gd
Normal 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")
|
||||
1
scripts/multiplayer/lobby.gd.uid
Normal file
1
scripts/multiplayer/lobby.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c5sfxrl7hky6p
|
||||
15
scripts/multiplayer/player_spawner.gd
Normal file
15
scripts/multiplayer/player_spawner.gd
Normal 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)
|
||||
1
scripts/multiplayer/player_spawner.gd.uid
Normal file
1
scripts/multiplayer/player_spawner.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ypgm3aplt78m
|
||||
Loading…
Add table
Add a link
Reference in a new issue