Fix headless class_name dependencies

- Replaced TeamData.Team type hints with int in all scripts
- Added explicit preloads for headless mode class resolution
- Created stub LagCompensation and DamageProcessor scripts
- Fixed PluginManager, SpawnManager, EconomyManager, BuyZone,
  RoundManager, BuyMenuHandler, BombObjective class_name references
- Updated server config to match ServerConfig.gd format

Gray screen root cause: server scripts failed to parse in headless
mode due to Godot 4 class_name loading order (Resource after Node),
leaving server_main.gd non-functional — accepted connections but
never spawned players.
This commit is contained in:
2026-07-02 10:09:28 -04:00
parent ad48f38ca5
commit 4a5264c5b0
14 changed files with 202 additions and 284 deletions
+3 -1
View File
@@ -23,6 +23,8 @@
class_name BuyMenuHandler
extends Node
const _td = preload("res://scripts/teams/team_data.gd")
# ---------------------------------------------------------------------------
# Signals
# ---------------------------------------------------------------------------
@@ -84,7 +86,7 @@ func is_player_in_buyzone(player_id: int) -> bool:
# No buy zones means players can buy anywhere (dev fallback)
return true
var player_team: TeamData.Team = TeamData.Team.SPECTATOR
var player_team: int = TeamData.Team.SPECTATOR
if team_manager:
player_team = team_manager.get_player_team(player_id)