src / beginning / accounts / accounts.tscn

Diagram

Diagram

Overridden virtual functions

_ready

func _ready() -> void:
	if get_parent() == get_tree().root:
		grab_focus_first = true
	else:
		load_accounts()
$AccountsContainer/Account1, $AccountsContainer/Account2, $AccountsContainer/Account3
func _ready() -> void:
	FocusHelper.set_neighbors_v(
		[%GetStartedButton, %ChangeNameButton, %AssistModeButton])
	reset_summary_visiblity()
	if resource: load_resource()

_input

$AccountsContainer/Account1, $AccountsContainer/Account2, $AccountsContainer/Account3
func _input(event: InputEvent) -> void:
	if is_focused() && event.is_action_pressed("ui_accept"):
		selected.emit()
	elif event.is_action_pressed("ui_back"):
		if is_selected():  unselected.emit()
		elif is_focused(): ui_backed.emit()

Scene Tree

Signal Connections

$AccountsContainer/Account1:[get_started]⇒$., $AccountsContainer/Account2:[get_started]⇒$., $AccountsContainer/Account3:[get_started]⇒$.
func _on_account_get_started(number: int) -> void:
	var account = get_node('%Account' + str(number))
	Current.load_account(number)
	get_started.emit(account)
$AccountsContainer/Account1:[selected]⇒$.
func _on_account_1_selected() -> void:
	%AnimationPlayer.play("1st_selected")
$AccountsContainer/Account1:[ui_backed]⇒$., $AccountsContainer/Account2:[ui_backed]⇒$., $AccountsContainer/Account3:[ui_backed]⇒$.
func _on_account_ui_backed() -> void:
	%AnimationPlayer.play("RESET")
	ui_backed.emit()
$AccountsContainer/Account1:[unselected]⇒$.
func _on_account_1_unselected() -> void:
	%AnimationPlayer.play("1st_unselected")
$AccountsContainer/Account2:[focus_entered]⇒$., $AccountsContainer/Account3:[focus_entered]⇒$.
func _on_account_focus_entered(idx: int) -> void:
	current_idx = idx
$AccountsContainer/Account2:[selected]⇒$.
func _on_account_2_selected() -> void:
	%AnimationPlayer.play("2nd_selected")
$AccountsContainer/Account2:[unselected]⇒$.
func _on_account_2_unselected() -> void:
	%AnimationPlayer.play("2nd_unselected")
$AccountsContainer/Account3:[selected]⇒$.
func _on_account_3_selected() -> void:
	%AnimationPlayer.play("3rd_selected")
$AccountsContainer/Account3:[unselected]⇒$.
func _on_account_3_unselected() -> void:
	%AnimationPlayer.play("3rd_unselected")

Animations

1st_selected

Diagram

1st_unselected

Diagram

2nd_selected

Diagram

2nd_unselected

Diagram

3rd_selected

Diagram

3rd_unselected

Diagram

Animation_l10c4

Diagram

opening (autoplay)

Diagram

Properties

Table 1. Root properties
Name Value

anchors_preset

15

anchor_right

1.0

anchor_bottom

1.0

grow_horizontal

2

grow_vertical

2

theme_override_constants/margin_top

90

theme_override_constants/margin_bottom

90

script

Table 2. $AccountsContainer properties
Name Value

unique_name_in_owner

true

Table 3. $AccountsContainer/Account1 properties
Name Value

unique_name_in_owner

true

anchors_preset

0

anchor_right

0.0

offset_top

50.0

offset_right

1920.0

offset_bottom

342.0

grow_horizontal

1

size_flags_horizontal

3

focus_neighbor_left

NodePath(".")

focus_neighbor_top

NodePath(".")

focus_neighbor_right

NodePath(".")

focus_neighbor_bottom

NodePath("../Account2")

Table 4. $AccountsContainer/Account2 properties
Name Value

unique_name_in_owner

true

anchors_preset

0

anchor_right

0.0

offset_top

356.0

offset_right

1920.0

offset_bottom

656.0

grow_horizontal

1

focus_neighbor_left

NodePath(".")

focus_neighbor_top

NodePath("../Account1")

focus_neighbor_right

NodePath(".")

focus_neighbor_bottom

NodePath("../Account3")

resource

null

Table 5. $AccountsContainer/Account3 properties
Name Value

unique_name_in_owner

true

anchors_preset

0

anchor_right

0.0

offset_top

656.0

offset_right

1920.0

offset_bottom

964.0

grow_horizontal

1

focus_neighbor_left

NodePath(".")

focus_neighbor_top

NodePath("../Account2")

focus_neighbor_right

NodePath(".")

focus_neighbor_bottom

NodePath(".")

resource

null

Table 6. $AnimationPlayer properties
Name Value

unique_name_in_owner

true

libraries

{ &"": SubResource("AnimationLibrary_uv55d") }

autoplay

opening

accounts.gd

extends MarginContainer

signal ui_backed
signal get_started(account: Account)

@export var grab_focus_first : bool : set = set_grab_focus_first
@export var focus_returned : bool : set = set_focus_returned
var current_idx : int = 0


func _ready() -> void:
	if get_parent() == get_tree().root:
		grab_focus_first = true
	else:
		load_accounts()


func load_accounts() -> void:
	for number in [1, 2, 3]:
		var account = AccountResource.find(number)
		var node = get_node('%Account'+str(number))
		node.resource = account
		node.load_resource()


func set_grab_focus_first(val: bool) -> void:
	FocusHelper.grab_first(%AccountsContainer, val)


func set_focus_returned(val: bool) -> void:
	if val:
		%AnimationPlayer.play("RESET")
		%AccountsContainer.get_child(current_idx).grab_focus()


func _on_account_1_selected() -> void:
	%AnimationPlayer.play("1st_selected")


func _on_account_1_unselected() -> void:
	%AnimationPlayer.play("1st_unselected")


func _on_account_2_selected() -> void:
	%AnimationPlayer.play("2nd_selected")


func _on_account_2_unselected() -> void:
	%AnimationPlayer.play("2nd_unselected")


func _on_account_3_selected() -> void:
	%AnimationPlayer.play("3rd_selected")


func _on_account_3_unselected() -> void:
	%AnimationPlayer.play("3rd_unselected")


func _on_account_ui_backed() -> void:
	%AnimationPlayer.play("RESET")
	ui_backed.emit()


func _on_account_get_started(number: int) -> void:
	var account = get_node('%Account' + str(number))
	Current.load_account(number)
	get_started.emit(account)


func _on_account_focus_entered(idx: int) -> void:
	current_idx = idx