81 lines
2.8 KiB
GDScript
81 lines
2.8 KiB
GDScript
extends Control
|
|
|
|
const CONFIG_FILE = "user://settings.cfg"
|
|
|
|
var host_port = 2675
|
|
var maxplayers
|
|
var ip = "127.0.0.1"
|
|
var port = 2670
|
|
var players = {}
|
|
var playername
|
|
|
|
func _ready():
|
|
get_tree().connect("connected_to_server", self, "_connected_ok")
|
|
get_tree().connect("connection_failed", self, "_connected_fail")
|
|
get_tree().connect("server_disconnected", self, "_server_disconnect")
|
|
|
|
var config = ConfigFile.new()
|
|
var err = config.load(CONFIG_FILE)
|
|
|
|
if OS.has_environment("USERNAME"):
|
|
var env_username = OS.get_environment("USERNAME")
|
|
$GeneralPanel/player_name.text = env_username
|
|
if err == OK and not config.has_section_key("user", "username"):
|
|
config.set_value("user", "username", env_username)
|
|
else:
|
|
var desktop_path = OS.get_system_dir(0).replace("\\", "/").split("/")
|
|
var path_username = desktop_path[desktop_path.size() - 2]
|
|
$GeneralPanel/player_name.text = path_username
|
|
if err == OK and not config.has_section_key("user", "username"):
|
|
config.set_value("user", "username", path_username)
|
|
|
|
config.save(CONFIG_FILE)
|
|
|
|
func _on_singleplayer_button_up():
|
|
var _letsgo = get_tree().change_scene("res://scenes/world/World.tscn")
|
|
|
|
|
|
func _on_JoinGameBtn_button_up():
|
|
ip = $JoinPanel/join_ip.text
|
|
port = $JoinPanel/join_port.value
|
|
print("Netplay - Attempting to join game at IP ",ip," via port ",port)
|
|
join_game()
|
|
|
|
func _on_HostGameBtn_button_up():
|
|
var host_port = $HostPanel/host_port.value
|
|
print("Netplay - Attempting to host game on port ",host_port,"...")
|
|
host_game(host_port)
|
|
|
|
func host_game(port):
|
|
maxplayers = $HostPanel/playercount.value
|
|
var host = NetworkedMultiplayerENet.new()
|
|
var hostresult = host.create_server(port, maxplayers) # ports, maxplayers
|
|
if (hostresult==OK):
|
|
print("Netplay - No conflicts. Starting Server")
|
|
get_tree().set_network_peer(host)
|
|
print("Netplay - Hosting on port ",port,". Max players: ",maxplayers)
|
|
print("Netplay - Are you the server ... ",get_tree().is_network_server())
|
|
$HostPanel/HostGameBtn.disabled = 1
|
|
$HostPanel/HostGameBtn.hint_tooltip = "Cannot start another server, Server already started."
|
|
$JoinPanel/JoinGameBtn.disabled = 1
|
|
$JoinPanel/JoinGameBtn.hint_tooltip = "Cannot join another server, Server already started."
|
|
$Camera2D.position.x += 640
|
|
else:
|
|
print("Netplay - Cant start server")
|
|
#Goto a lobby instance
|
|
|
|
func join_game():
|
|
playername = $GeneralPanel/player_name.text
|
|
var host = NetworkedMultiplayerENet.new()
|
|
var joinresult = host.create_client(ip, port)
|
|
if (joinresult==OK):
|
|
get_tree().set_network_peer(host)
|
|
print("Netplay - It worked! I should be connecting...")
|
|
else:
|
|
print("Netplay - I was unable to connect to the server.")
|
|
|
|
func _connected_ok():
|
|
print("Netplay - Built-in Signal - It worked! Im connected!")
|
|
|
|
func _connected_fail():
|
|
print("Netplay - Built-in Signal - It failed")
|