About to big refactor multiplayer... again
This commit is contained in:
parent
2aea604aba
commit
438ba9682f
|
@ -2,9 +2,13 @@
|
||||||
|
|
||||||
[ext_resource path="res://scripts/screens/game.gd" type="Script" id=1]
|
[ext_resource path="res://scripts/screens/game.gd" type="Script" id=1]
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="game" type="Node2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="camera" type="Camera2D" parent="."]
|
||||||
|
current = true
|
||||||
|
zoom = Vector2( 0.5, 0.5 )
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
margin_left = 93.0
|
margin_left = 93.0
|
||||||
margin_top = 109.0
|
margin_top = 109.0
|
||||||
|
|
|
@ -13,6 +13,8 @@ onready var webrtc = WebRTCMultiplayer.new()
|
||||||
|
|
||||||
var signaller_client = null
|
var signaller_client = null
|
||||||
var ice_servers = null
|
var ice_servers = null
|
||||||
|
var peers = {}
|
||||||
|
var peers_id_mappings = {}
|
||||||
|
|
||||||
func _init(_ice_servers, _signaller_client):
|
func _init(_ice_servers, _signaller_client):
|
||||||
ice_servers = _ice_servers
|
ice_servers = _ice_servers
|
||||||
|
@ -60,6 +62,13 @@ func close():
|
||||||
func connect_to_signaller():
|
func connect_to_signaller():
|
||||||
signaller_client.connect_websocket()
|
signaller_client.connect_websocket()
|
||||||
|
|
||||||
|
func peer_by_peer_id(peer_id):
|
||||||
|
if peers_id_mappings.has(peer_id):
|
||||||
|
var p = peers_id_mappings[peer_id]
|
||||||
|
if peers.has(p):
|
||||||
|
return peers[p]
|
||||||
|
return null
|
||||||
|
|
||||||
func _create_peer(peer_id):
|
func _create_peer(peer_id):
|
||||||
# if peer_id == signaller_client.peer_id: return
|
# if peer_id == signaller_client.peer_id: return
|
||||||
var peer: WebRTCPeerConnection = WebRTCPeerConnection.new()
|
var peer: WebRTCPeerConnection = WebRTCPeerConnection.new()
|
||||||
|
|
|
@ -2,6 +2,11 @@ extends Node2D
|
||||||
|
|
||||||
onready var player = preload("res://objects/player.tscn")
|
onready var player = preload("res://objects/player.tscn")
|
||||||
|
|
||||||
|
onready var camera = $camera
|
||||||
|
onready var camera_target = null
|
||||||
|
onready var zoom_levels = [0.25, 0.5, 1, 1.5, 2, 2.5, 3]
|
||||||
|
onready var current_zoom_level_index = 2
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# TODO: probably have to wait for all peers to be ready before we add players
|
# TODO: probably have to wait for all peers to be ready before we add players
|
||||||
rpc("add_player", get_tree().get_network_unique_id())
|
rpc("add_player", get_tree().get_network_unique_id())
|
||||||
|
@ -11,10 +16,11 @@ func _process(delta):
|
||||||
|
|
||||||
remotesync func add_player(peer_id):
|
remotesync func add_player(peer_id):
|
||||||
var new_player = player.instance()
|
var new_player = player.instance()
|
||||||
|
new_player.name = Global.negotiator.peer_by_peer_id(peer_id).name
|
||||||
new_player.set_network_master(peer_id)
|
new_player.set_network_master(peer_id)
|
||||||
add_child(new_player)
|
add_child(new_player)
|
||||||
new_player.global_position = Vector2(100, 100)
|
new_player.global_position = Vector2(100, 100)
|
||||||
print("Added player: %s" % new_player)
|
print("Added player: %s for peer %s" % [new_player, peer_id])
|
||||||
|
|
||||||
func _on_Button_pressed():
|
func _on_Button_pressed():
|
||||||
Global.main_menu()
|
Global.main_menu()
|
||||||
|
|
|
@ -135,6 +135,8 @@ func _on_start_pressed():
|
||||||
if is_host: rpc("start_game")
|
if is_host: rpc("start_game")
|
||||||
|
|
||||||
remotesync func start_game():
|
remotesync func start_game():
|
||||||
|
Global.negotiator.peers = peers
|
||||||
|
Global.negotiator.peers_id_mappings = peers_id_mappings
|
||||||
Global.goto_game()
|
Global.goto_game()
|
||||||
|
|
||||||
remotesync func set_ready(ready):
|
remotesync func set_ready(ready):
|
||||||
|
|
Loading…
Reference in a new issue