Files
Blockline/tests/map_network.gd
T

37 lines
1.3 KiB
GDScript
Raw Normal View History

2026-09-12 11:01:37 +02:00
extends SceneTree
func _initialize() -> void:
call_deferred("run")
func run() -> void:
create_timer(40).timeout.connect(func(): quit(2))
var server := "--server" in OS.get_cmdline_user_args()
var game := (load("res://scenes/main.tscn") as PackedScene).instantiate() as Node3D
root.add_child(game)
game.port = 27992
if server:
var settings: Dictionary = game.config.duplicate()
settings["map"] = "dust2"
if not game.host(settings):
quit(1)
return
var ready := FileAccess.open("res://logs/map-lan-ready.flag", FileAccess.WRITE)
ready.store_string("ready")
ready.close()
else:
game.join("127.0.0.1:27992")
var passed := false
for tick in (220 if server else 100):
await create_timer(0.1).timeout
if tick % 20 == 0: print("NET ", server, " peers=", game.multiplayer.get_peers(), " status=", game.multiplayer.multiplayer_peer.get_connection_status(), " connecting=", game.connecting)
var humans := 0
for p: Fighter in game.players.values():
if not p.bot: humans += 1
if game.active and humans == 2 and game.players.size() == 8 and game.arena.map_id == "dust2" and game.config.get("map") == "dust2":
passed = true
print("MAP LAN ", "server" if server else "client", " passed=", passed, " map=", game.arena.map_id, " roster=", game.players.size())
game.leave()
await process_frame
game.free()
quit(0 if passed else 1)