e7299b17e9
Stack installed: - netfox v1.35.3 (core + extras + noray + internals) - godot-jolt v0.16.0-stable Architecture: - Server: ENet transport (works headless, no netfox deps) - Client/Editor: netfox rollback (RollbackSynchronizer, TickInterpolator) New/modified: - docs/migration-netfox-plan.md — migration architecture - scripts/network/network_manager.gd — netfox-aware ENet fallback - scripts/network/player.gd — clean base player - client/characters/player_netfox.gd — rollback player w/ WeaponManager - client/characters/input/player_net_input.gd — BaseNetInput subclass - client/characters/character/fps_character_controller.gd — netfox input feed - client/weapons/ — weapon data, registry, TacticalWeaponHitscan, WeaponManager - client/scripts/round_replicator.gd — client-side round state bridge - server/scripts/round_manager.gd — improved state machine - server/scripts/plugin_api/plugin_manager.gd — refined plugin system - config: enemy_tag, ally_tag for meatball targeting Removed: old C++ SimulationServer GDExtension (replaced by netfox rollback)
32 lines
818 B
GDScript
32 lines
818 B
GDScript
@tool
|
|
extends Node
|
|
|
|
# Bootstrap: loads and runs validate_map.gd from the main scene.
|
|
# Usage:
|
|
# 1. Set project.godot run/main_scene to this scene
|
|
# 2. godot --path client [-- <scene_path>]
|
|
# 3. Then restore the original main_scene
|
|
|
|
func _ready() -> void:
|
|
var args := OS.get_cmdline_user_args()
|
|
|
|
if args.is_empty():
|
|
print("Usage: godot --path client [-- <scene_path>]")
|
|
print("")
|
|
print("If no scene_path given, validates the default scene.")
|
|
get_tree().quit(1)
|
|
return
|
|
|
|
var scene_path := args[0]
|
|
|
|
# Load and run the validate_map.gd script
|
|
var validator_script := load("res://tools/validate_map.gd")
|
|
if validator_script == null:
|
|
push_error("Failed to load validator script")
|
|
get_tree().quit(1)
|
|
return
|
|
|
|
var validator := Node.new()
|
|
validator.set_script(validator_script)
|
|
add_child(validator)
|