fix: add smart entry scene (client vs server via headless detection)

This commit is contained in:
2026-07-01 21:44:14 -04:00
parent aae57c63bd
commit 20ca43f928
3 changed files with 25 additions and 1 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ config_version=5
config/name="Tactical Shooter"
config/description="Phase 0 — Headless Dedicated Server"
run/main_scene="res://scenes/server/server_main.tscn"
run/main_scene="res://scenes/entry.tscn"
config/features=PackedStringArray("4.7", "Forward Plus")
[autoload]
+6
View File
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://scripts/entry.gd" id="1"]
[node name="Entry" type="Node"]
script = ExtResource("1")
+18
View File
@@ -0,0 +1,18 @@
## Entry — Smart entry point.
## Loads the server scene if running headless (dedicated server),
## or the client scene if running with a display (Windows client).
extends Node
func _ready() -> void:
var is_headless := DisplayServer.get_name() == "headless"
if is_headless:
# Dedicated server mode
var server_scene = preload("res://scenes/server/server_main.tscn")
add_child(server_scene.instantiate())
print("[Entry] Starting in SERVER mode (headless)")
else:
# Client mode (Windows, etc.)
var client_scene = preload("res://scenes/client/client_main.tscn")
add_child(client_scene.instantiate())
print("[Entry] Starting in CLIENT mode (display available)")