66 lines
1.6 KiB
GDScript
66 lines
1.6 KiB
GDScript
## SPDX-License-Identifier: GPL-3.0-or-later
|
|
## Copyright (c) 2024 interstellardevelopment.org
|
|
|
|
extends Node
|
|
|
|
# This tells the game what the logmode is.
|
|
# 0 -> None
|
|
# 1 -> Errors
|
|
# 2 -> Errors/Warnings
|
|
# 3 -> Errors/Warnings/Infos
|
|
# 4 -> All
|
|
var logmode: int = 3
|
|
|
|
var ip: String = "127.0.0.1"
|
|
var port: int = 25262
|
|
var max_clients: int = 1024
|
|
|
|
var roomname: String = "sample"
|
|
var username: String = "sample"
|
|
var mapname: String = "Testmap"
|
|
|
|
var launchmode: int = 0
|
|
|
|
func _ready() -> void:
|
|
Log.info("Running on: %s %s (%s)" % [OS.get_distribution_name(), OS.get_version(), OS.get_name()])
|
|
var args: PackedStringArray = OS.get_cmdline_args()
|
|
var skip: bool = false
|
|
for i: int in range(args.size()):
|
|
if !skip:
|
|
Log.info("Argument %s passed." % args[i])
|
|
match args[i]:
|
|
"--logmode":
|
|
logmode = int(args[i+1])
|
|
skip = true
|
|
"--username":
|
|
username = args[i+1]
|
|
skip = true
|
|
"--server":
|
|
launchmode = 2
|
|
"--client":
|
|
launchmode = 1
|
|
"res://start.tscn":
|
|
pass # Catch in order to prevent a warning.
|
|
_:
|
|
Log.warning("Unknown argument: %s!" % args[i])
|
|
else:
|
|
skip = false
|
|
|
|
if DisplayServer.get_name() == "headless":
|
|
launchmode = 2
|
|
|
|
if OS.is_debug_build():
|
|
logmode = 4
|
|
|
|
match launchmode:
|
|
0:
|
|
# Menu
|
|
if get_tree().change_scene_to_file("res://scenes/ui/create_room.tscn") != OK:
|
|
Log.error("Couldn't change to the create room scene! Closing application.", "Couldn't change to the create room scene!")
|
|
1:
|
|
# Client with direct join
|
|
Networking.join_room()
|
|
2:
|
|
# Server
|
|
if Networking.start_server() != OK:
|
|
Log.error("Failed to start server! Closing application.", "Failed to start server!")
|