mirror of
https://github.com/RPG-Research/bcirpg.git
synced 2024-04-16 14:23:01 +00:00
ac73e184d3
Added a join scene but was unable to get the client-server interaction working properly. Hopefully some of the code can be used as a starting point once we begin working on Dario's UI.
54 lines
1.5 KiB
GDScript
54 lines
1.5 KiB
GDScript
extends Node
|
|
|
|
const DEFAULT_PORT = 28960
|
|
const MAX_CLIENTS = 6
|
|
|
|
var server = null
|
|
var client = null
|
|
var player_counter = 1
|
|
var player = load("res://Player.tscn")
|
|
|
|
var ip_address = ""
|
|
var room_name = ""
|
|
var room_password = ""
|
|
|
|
func _ready() -> void:
|
|
ip_address = IP.get_local_addresses()[3]
|
|
|
|
for ip in IP.get_local_addresses():
|
|
if ip.begins_with("192.168.") and not ip.ends_with(".1"):
|
|
ip_address = ip
|
|
|
|
get_tree().connect("connected_to_server", self, "_connected_to_server")
|
|
get_tree().connect("server_disconnected", self, "_server_disconnected")
|
|
|
|
func _create_server() -> void:
|
|
server = NetworkedMultiplayerENet.new()
|
|
server.create_server(DEFAULT_PORT, MAX_CLIENTS)
|
|
get_tree().set_network_peer(server)
|
|
|
|
func _join_server() -> void:
|
|
client = NetworkedMultiplayerENet.new()
|
|
client.create_client(ip_address, DEFAULT_PORT)
|
|
get_tree().set_network_peer(client)
|
|
|
|
func _connected_to_server() -> void:
|
|
print("Successfully connected to the server")
|
|
|
|
func _server_disconnected() -> void:
|
|
print("Disconnected from the server")
|
|
|
|
func _set_server_info(name, password) -> void:
|
|
room_name = name
|
|
room_password = password
|
|
|
|
func _instance_player(id, name) -> void:
|
|
var player_instance = Global._instance_node(player, Players)
|
|
player_instance.name = str(id)
|
|
player_instance._set_name(name)
|
|
#Using player_counter to determine the positioning of the player's name on the screen
|
|
#So that they aren't all overlapping
|
|
player_instance._set_name_position(player_counter)
|
|
player_instance.set_network_master(id)
|
|
player_counter += 1
|