From 261e958a9801bb91b7a1eee0494ec75595b17e53 Mon Sep 17 00:00:00 2001 From: denizk0461 Date: Tue, 15 Jul 2025 09:09:04 +0200 Subject: [PATCH] added add_cards(), which now sorts cards before drawing them to the hand --- cards/playing_card.gd | 5 +++-- elements/player_hand.gd | 27 +++++++++++++++++---------- game.tscn | 12 +----------- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/cards/playing_card.gd b/cards/playing_card.gd index c8a0cbc..e0372a6 100644 --- a/cards/playing_card.gd +++ b/cards/playing_card.gd @@ -11,10 +11,8 @@ signal card_clicked(playing_card: PlayingCard) func _enter_tree() -> void: if card_details: - print("yeses!") set_front_texture(CardManager.get_card_texture(card_details.card_id)) else: - print("NO!") set_front_texture(CardManager.get_card_texture(-1)) func move_to(new_x_position: float) -> void: @@ -29,6 +27,9 @@ func unselect() -> void: func set_front_texture(texture: Texture) -> void: card_mesh.get_surface_override_material(0).albedo_texture = texture +func setup_card_details(card_id: int) -> void: + self.card_details = CardManager.full_deck[card_id] + func _get_new_tween() -> Tween: var tween = create_tween() tween.set_trans(Tween.TRANS_BACK) diff --git a/elements/player_hand.gd b/elements/player_hand.gd index a5fbca8..480f6b8 100644 --- a/elements/player_hand.gd +++ b/elements/player_hand.gd @@ -19,21 +19,28 @@ var _selected_card: PlayingCard = null signal card_selected(card_id: int) signal card_played(card_id: int) -func _ready() -> void: - _arrange_cards() - for i in test_card_count: - var card: PlayingCard = card_scene.instantiate() - card.card_clicked.connect(_on_card_clicked) - var test_details: Card = Card.new() - test_details.card_id = randi_range(0, 59) - card.card_details = test_details - add_card(card) - await get_tree().create_timer(0.16).timeout +#func _ready() -> void: + #_arrange_cards() + #var test_array: Array[int] + #for i in range(20): + #test_array.append(randi_range(0, 59)) + # + #add_cards(test_array) func add_card(card: PlayingCard) -> void: self.add_child(card) _arrange_cards() +func add_cards(card_ids: Array[int], client_id: String) -> void: + card_ids.sort() + for card_id in card_ids: + var card: PlayingCard = card_scene.instantiate() + if true: # if client_id == ... + card.card_clicked.connect(_on_card_clicked) + card.setup_card_details(card_id) + add_card(card) + await get_tree().create_timer(0.16).timeout + func remove_card(card: PlayingCard) -> void: self.remove_child(card) _arrange_cards() diff --git a/game.tscn b/game.tscn index 71fc1a9..d4a2c12 100644 --- a/game.tscn +++ b/game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://gqrdpjslr4np"] +[gd_scene load_steps=8 format=3 uid="uid://gqrdpjslr4np"] [ext_resource type="Script" uid="uid://p5gvnyhjqe6o" path="res://components/web_client_tcp.gd" id="1_feb5d"] [ext_resource type="Script" uid="uid://c0cqkatyo4uj1" path="res://components/client_interface.gd" id="2_e2o6t"] @@ -15,9 +15,6 @@ ambient_light_source = 2 ambient_light_color = Color(1, 1, 1, 1) ambient_light_energy = 0.15 -[sub_resource type="BoxMesh" id="BoxMesh_fc0e3"] -size = Vector3(0.2, 0.2, 0.2) - [node name="Game" type="Node"] [node name="WebClientTCP" type="Node" parent="."] @@ -206,10 +203,6 @@ player_hand_scene = ExtResource("4_fc0e3") [node name="Camera3D" type="Camera3D" parent="EnvironmentManager"] transform = Transform3D(1, 0, 0, 0, 0.997882, 0.0650548, 0, -0.0650548, 0.997882, 0, 0.171315, 1.65638) -[node name="Label3D" type="Label3D" parent="EnvironmentManager"] -billboard = 1 -text = "Magician Online!" - [node name="DirectionalLight3D" type="DirectionalLight3D" parent="EnvironmentManager"] transform = Transform3D(0.970511, 0, 0.241058, -0.137972, 0.820002, 0.555482, -0.197668, -0.572361, 0.795821, 2.41581, 2.80426, 0) @@ -219,9 +212,6 @@ environment = SubResource("Environment_fc0e3") [node name="PlayerHand" parent="EnvironmentManager" instance=ExtResource("4_fc0e3")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.91793) -[node name="MeshInstance3D" type="MeshInstance3D" parent="EnvironmentManager"] -mesh = SubResource("BoxMesh_fc0e3") - [connection signal="client_joined_lobby" from="WebClientTCP" to="HBoxContainer/ClientInterface" method="_on_web_client_tcp_client_joined_lobby"] [connection signal="client_joined_lobby" from="WebClientTCP" to="HBoxContainer/GameUI" method="_on_web_client_tcp_client_joined_lobby"] [connection signal="client_left_lobby" from="WebClientTCP" to="HBoxContainer/ClientInterface" method="_on_web_client_tcp_client_left_lobby"]