neon-sprawl/client/scripts/contract_hud_main_wiring.gd

44 lines
1.2 KiB
GDScript

extends RefCounted
## NEO-153: thin main.gd wiring (keeps main.gd under gdlint max-file-lines).
const ContractHudController := preload("res://scripts/contract_hud_controller.gd")
static func setup_on(
main: Node,
hud_root: Node,
contract_client: Node,
apply_http_config: Callable,
item_defs_client: Node = null,
inventory_client: Node = null,
skill_progression_client: Node = null,
faction_standing_client: Node = null
) -> Node:
var controller: Node = ContractHudController.new()
main.add_child(controller)
controller.call(
"setup",
contract_client,
hud_root.get_node("ContractActiveLabel"),
hud_root.get_node("ContractIssueFeedbackLabel"),
hud_root.get_node("ContractRewardDeliveryLabel"),
apply_http_config,
item_defs_client,
inventory_client,
skill_progression_client,
faction_standing_client
)
return controller
static func request_refresh(controller: Node) -> void:
if is_instance_valid(controller):
controller.call("request_contract_refresh")
static func try_issue_key_input(controller: Node, event: InputEvent) -> bool:
if not is_instance_valid(controller):
return false
return bool(controller.call("try_issue_key_input", event))