fix: add class_name to HandArea and CardNode, fix type inference in training_room
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
class_name CardNode
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
signal card_clicked(card_node)
|
signal card_clicked(card_node)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
class_name HandArea
|
||||||
extends HBoxContainer
|
extends HBoxContainer
|
||||||
|
|
||||||
signal cards_selected(selected: Array)
|
signal cards_selected(selected: Array)
|
||||||
@@ -5,38 +6,38 @@ signal hint_requested()
|
|||||||
signal play_requested()
|
signal play_requested()
|
||||||
signal pass_requested()
|
signal pass_requested()
|
||||||
|
|
||||||
var card_nodes: Array = []
|
var card_nodes: Array[CardNode] = []
|
||||||
var selected_cards: Array = []
|
var selected_cards: Array = []
|
||||||
const CARD_SCENE := preload("res://src/ui/components/card_node.tscn")
|
const CARD_SCENE := preload("res://src/ui/components/card_node.tscn")
|
||||||
|
|
||||||
var training_controller: TrainingController = null
|
var training_controller: TrainingController = null
|
||||||
|
|
||||||
func update_hand(hand: Array) -> void:
|
func update_hand(hand: Array) -> void:
|
||||||
for cn in card_nodes:
|
for cn in card_nodes:
|
||||||
cn.queue_free()
|
cn.queue_free()
|
||||||
card_nodes.clear()
|
card_nodes.clear()
|
||||||
selected_cards.clear()
|
selected_cards.clear()
|
||||||
for c in hand:
|
for c in hand:
|
||||||
var node: Control = CARD_SCENE.instantiate()
|
var node: CardNode = CARD_SCENE.instantiate()
|
||||||
node.setup(c)
|
node.setup(c)
|
||||||
node.card_clicked.connect(_on_card_clicked)
|
node.card_clicked.connect(_on_card_clicked)
|
||||||
node.card_double_clicked.connect(_on_card_double_clicked)
|
node.card_double_clicked.connect(_on_card_double_clicked)
|
||||||
add_child(node)
|
add_child(node)
|
||||||
card_nodes.append(node)
|
card_nodes.append(node)
|
||||||
|
|
||||||
func _on_card_clicked(card_node: Node) -> void:
|
func _on_card_clicked(card_node: CardNode) -> void:
|
||||||
card_node.set_selected(not card_node.is_selected)
|
card_node.set_selected(not card_node.is_selected)
|
||||||
if card_node.is_selected:
|
if card_node.is_selected:
|
||||||
selected_cards.append(card_node.card_data)
|
selected_cards.append(card_node.card_data)
|
||||||
else:
|
else:
|
||||||
selected_cards.erase(card_node.card_data)
|
selected_cards.erase(card_node.card_data)
|
||||||
cards_selected.emit(selected_cards)
|
cards_selected.emit(selected_cards)
|
||||||
|
|
||||||
func _on_card_double_clicked(card_node: Node) -> void:
|
func _on_card_double_clicked(card_node: CardNode) -> void:
|
||||||
if not card_node.is_selected:
|
if not card_node.is_selected:
|
||||||
card_node.set_selected(true)
|
card_node.set_selected(true)
|
||||||
selected_cards.append(card_node.card_data)
|
selected_cards.append(card_node.card_data)
|
||||||
play_requested.emit()
|
play_requested.emit()
|
||||||
|
|
||||||
func _on_hint_pressed() -> void:
|
func _on_hint_pressed() -> void:
|
||||||
hint_requested.emit()
|
hint_requested.emit()
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ extends Control
|
|||||||
|
|
||||||
var controller: TrainingController
|
var controller: TrainingController
|
||||||
|
|
||||||
@onready var hand_area: Node = $HandArea
|
@onready var hand_area: HandArea = $HandArea
|
||||||
@onready var play_button: Button = $Buttons/PlayButton
|
@onready var play_button: Button = $Buttons/PlayButton
|
||||||
@onready var pass_button: Button = $Buttons/PassButton
|
@onready var pass_button: Button = $Buttons/PassButton
|
||||||
@onready var hint_button: Button = $Buttons/HintButton
|
@onready var hint_button: Button = $Buttons/HintButton
|
||||||
|
|||||||
Reference in New Issue
Block a user