hotel-madness/scripts/utils/game.gd
2024-12-12 15:23:16 +01:00

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!")