39 lines
1.4 KiB
GDScript
39 lines
1.4 KiB
GDScript
extends Node
|
|
|
|
@export var network: Node
|
|
|
|
var br_gamemode_manager = preload("res://danmaku!/Network/Game Modes/battle_royale_server_tick_manager.tscn")
|
|
var board = preload("res://danmaku!/Board/BoardRenderer.tscn")
|
|
|
|
@onready var player_board = board.instantiate()
|
|
var player_world: Node2D
|
|
|
|
func _ready() -> void:
|
|
player_world = player_board.get_world()
|
|
player_world.set_player_controlled(true)
|
|
%SessionManager.on_auth_success.connect(_make_br_match_post_auth_success)
|
|
network.boards.add_child(player_board)
|
|
|
|
func _make_br_match_post_auth_success() -> void:
|
|
print("Attempting to create debug match.")
|
|
await create_and_join_debug_match()
|
|
var tick_manager = br_gamemode_manager.instantiate()
|
|
tick_manager.controlled_world = player_world
|
|
tick_manager.network = network
|
|
network.add_child(tick_manager)
|
|
network.nakama_socket.received_match_state.connect(tick_manager._on_match_state)
|
|
|
|
func create_and_join_debug_match() -> void:
|
|
var response: NakamaAPI.ApiRpc = await network.nakama_client.rpc_async(network.nakama_session, "manual_force_create_br_match_rpc")
|
|
|
|
if response.is_exception():
|
|
print("An error occurred when calling manual_force_create_br_match_rpc: %s" % response)
|
|
return
|
|
|
|
var debug_br_match: NakamaRTAPI.Match = await network.nakama_socket.join_match_async(response.payload)
|
|
|
|
if debug_br_match.is_exception():
|
|
print("An error occurred when joining debug BR match: %s" % response)
|
|
return
|
|
else:
|
|
network.current_match_id = response.payload
|