├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── addons
└── deckbuilder-framework
│ ├── card.gd
│ ├── card_data.gd
│ ├── deck.gd
│ ├── playing-cards
│ ├── assets
│ │ ├── clubs
│ │ │ ├── card_clubs_02.png
│ │ │ ├── card_clubs_02.png.import
│ │ │ ├── card_clubs_03.png
│ │ │ ├── card_clubs_03.png.import
│ │ │ ├── card_clubs_04.png
│ │ │ ├── card_clubs_04.png.import
│ │ │ ├── card_clubs_05.png
│ │ │ ├── card_clubs_05.png.import
│ │ │ ├── card_clubs_06.png
│ │ │ ├── card_clubs_06.png.import
│ │ │ ├── card_clubs_07.png
│ │ │ ├── card_clubs_07.png.import
│ │ │ ├── card_clubs_08.png
│ │ │ ├── card_clubs_08.png.import
│ │ │ ├── card_clubs_09.png
│ │ │ ├── card_clubs_09.png.import
│ │ │ ├── card_clubs_10.png
│ │ │ ├── card_clubs_10.png.import
│ │ │ ├── card_clubs_A.png
│ │ │ ├── card_clubs_A.png.import
│ │ │ ├── card_clubs_J.png
│ │ │ ├── card_clubs_J.png.import
│ │ │ ├── card_clubs_K.png
│ │ │ ├── card_clubs_K.png.import
│ │ │ ├── card_clubs_Q.png
│ │ │ └── card_clubs_Q.png.import
│ │ ├── diamonds
│ │ │ ├── card_diamonds_02.png
│ │ │ ├── card_diamonds_02.png.import
│ │ │ ├── card_diamonds_03.png
│ │ │ ├── card_diamonds_03.png.import
│ │ │ ├── card_diamonds_04.png
│ │ │ ├── card_diamonds_04.png.import
│ │ │ ├── card_diamonds_05.png
│ │ │ ├── card_diamonds_05.png.import
│ │ │ ├── card_diamonds_06.png
│ │ │ ├── card_diamonds_06.png.import
│ │ │ ├── card_diamonds_07.png
│ │ │ ├── card_diamonds_07.png.import
│ │ │ ├── card_diamonds_08.png
│ │ │ ├── card_diamonds_08.png.import
│ │ │ ├── card_diamonds_09.png
│ │ │ ├── card_diamonds_09.png.import
│ │ │ ├── card_diamonds_10.png
│ │ │ ├── card_diamonds_10.png.import
│ │ │ ├── card_diamonds_A.png
│ │ │ ├── card_diamonds_A.png.import
│ │ │ ├── card_diamonds_J.png
│ │ │ ├── card_diamonds_J.png.import
│ │ │ ├── card_diamonds_K.png
│ │ │ ├── card_diamonds_K.png.import
│ │ │ ├── card_diamonds_Q.png
│ │ │ └── card_diamonds_Q.png.import
│ │ ├── hearts
│ │ │ ├── card_hearts_02.png
│ │ │ ├── card_hearts_02.png.import
│ │ │ ├── card_hearts_03.png
│ │ │ ├── card_hearts_03.png.import
│ │ │ ├── card_hearts_04.png
│ │ │ ├── card_hearts_04.png.import
│ │ │ ├── card_hearts_05.png
│ │ │ ├── card_hearts_05.png.import
│ │ │ ├── card_hearts_06.png
│ │ │ ├── card_hearts_06.png.import
│ │ │ ├── card_hearts_07.png
│ │ │ ├── card_hearts_07.png.import
│ │ │ ├── card_hearts_08.png
│ │ │ ├── card_hearts_08.png.import
│ │ │ ├── card_hearts_09.png
│ │ │ ├── card_hearts_09.png.import
│ │ │ ├── card_hearts_10.png
│ │ │ ├── card_hearts_10.png.import
│ │ │ ├── card_hearts_A.png
│ │ │ ├── card_hearts_A.png.import
│ │ │ ├── card_hearts_J.png
│ │ │ ├── card_hearts_J.png.import
│ │ │ ├── card_hearts_K.png
│ │ │ ├── card_hearts_K.png.import
│ │ │ ├── card_hearts_Q.png
│ │ │ └── card_hearts_Q.png.import
│ │ ├── misc
│ │ │ ├── card_back.png
│ │ │ ├── card_back.png.import
│ │ │ ├── card_joker_black.png
│ │ │ ├── card_joker_black.png.import
│ │ │ ├── card_joker_red.png
│ │ │ └── card_joker_red.png.import
│ │ └── spades
│ │ │ ├── card_spades_02.png
│ │ │ ├── card_spades_02.png.import
│ │ │ ├── card_spades_03.png
│ │ │ ├── card_spades_03.png.import
│ │ │ ├── card_spades_04.png
│ │ │ ├── card_spades_04.png.import
│ │ │ ├── card_spades_05.png
│ │ │ ├── card_spades_05.png.import
│ │ │ ├── card_spades_06.png
│ │ │ ├── card_spades_06.png.import
│ │ │ ├── card_spades_07.png
│ │ │ ├── card_spades_07.png.import
│ │ │ ├── card_spades_08.png
│ │ │ ├── card_spades_08.png.import
│ │ │ ├── card_spades_09.png
│ │ │ ├── card_spades_09.png.import
│ │ │ ├── card_spades_10.png
│ │ │ ├── card_spades_10.png.import
│ │ │ ├── card_spades_A.png
│ │ │ ├── card_spades_A.png.import
│ │ │ ├── card_spades_J.png
│ │ │ ├── card_spades_J.png.import
│ │ │ ├── card_spades_K.png
│ │ │ ├── card_spades_K.png.import
│ │ │ ├── card_spades_Q.png
│ │ │ └── card_spades_Q.png.import
│ ├── clubs
│ │ ├── 10.tres
│ │ ├── 2.tres
│ │ ├── 3.tres
│ │ ├── 4.tres
│ │ ├── 5.tres
│ │ ├── 6.tres
│ │ ├── 7.tres
│ │ ├── 8.tres
│ │ ├── 9.tres
│ │ ├── a.tres
│ │ ├── j.tres
│ │ ├── k.tres
│ │ └── q.tres
│ ├── diamonds
│ │ ├── 10.tres
│ │ ├── 2.tres
│ │ ├── 3.tres
│ │ ├── 4.tres
│ │ ├── 5.tres
│ │ ├── 6.tres
│ │ ├── 7.tres
│ │ ├── 8.tres
│ │ ├── 9.tres
│ │ ├── a.tres
│ │ ├── j.tres
│ │ ├── k.tres
│ │ └── q.tres
│ ├── hearts
│ │ ├── 10.tres
│ │ ├── 2.tres
│ │ ├── 3.tres
│ │ ├── 4.tres
│ │ ├── 5.tres
│ │ ├── 6.tres
│ │ ├── 7.tres
│ │ ├── 8.tres
│ │ ├── 9.tres
│ │ ├── a.tres
│ │ ├── j.tres
│ │ ├── k.tres
│ │ └── q.tres
│ ├── playing_card.gd
│ ├── playing_card.tscn
│ ├── playing_card_data.gd
│ └── spades
│ │ ├── 10.tres
│ │ ├── 2.tres
│ │ ├── 3.tres
│ │ ├── 4.tres
│ │ ├── 5.tres
│ │ ├── 6.tres
│ │ ├── 7.tres
│ │ ├── 8.tres
│ │ ├── 9.tres
│ │ ├── a.tres
│ │ ├── j.tres
│ │ ├── k.tres
│ │ └── q.tres
│ └── plugin.cfg
├── example.gd
├── example.tscn
├── fancy
├── fancy.gd
└── fancy.tscn
├── icon.svg
├── icon.svg.import
├── project.godot
├── simple
├── simple.gd
└── simple.tscn
└── solitaire
├── build_deck.gd
├── solitaire.gd
├── solitaire.tscn
└── tableau_deck.gd
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Normalize EOL for all files that Git considers text files.
2 | * text=auto eol=lf
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Godot 4+ specific ignores
2 | .godot/
3 | /android/
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 insideout-andrew
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Deckbuilder Framework
2 |
3 | This system implements card and deck mechanics in Godot Engine. It features drawing, shuffling, and many more standard card behaviors and interactions. A standard deck of playing cards comes packaged with this plugin, but it can really be used for any kind of card based game.
4 |
5 | ## Table of Contents
6 | - [Quick Example](#quick-example)
7 | - [Installation](#instalation)
8 | - [Getting Started](#getting-started)
9 | - [Components](#components)
10 | - [CardData](#card-data)
11 | - [Card](#card)
12 | - [Deck](#deck)
13 |
14 |
15 |
16 | ## Quick Example
17 | ```
18 | var cards = [
19 | preload("res://path/to/your/card1.tres"),
20 | preload("res://path/to/your/card2.tres"),
21 | preload("res://path/to/your/card3.tres")
22 | ]
23 |
24 | @onready var draw_pile: Deck = $DrawPile
25 | @onready var hand: Deck = $Hand
26 |
27 | func _ready():
28 | for data in cards:
29 | draw_pile.create_from_card_data(data)
30 | draw_pile.shuffle()
31 | draw_pile.move_card_to_deck(hand, draw_pile.get_top_card())
32 |
33 | ```
34 |
35 |
36 | ## Installation
37 | 1. Download the latest release
38 | 2. Unpack the `addons/deckbuilder-framwork` into your `/addons` folder within the Godot project
39 |
40 |
41 | ## Getting Started
42 | 1. Extend the `CardData` resource script with any data your cards will need
43 | 2. Create a `Card` scene that implements your `CardData`
44 | 3. Add a `Deck` into your game
45 | 4. Create cards in the deck using the `create_from_card_data` method
46 | 5. Connect the signals decks emit and use them make your game
47 |
48 |
49 | ## Components
50 |
51 |
52 | ### `CardData`
53 | Resource data. Generally this data will initialize your `Card` scene. After you setup your `CardData` you can create your card resources (.tres files) that use this as their script.
54 |
55 | #### Example
56 | ```
57 | # playing_card.gd
58 |
59 | class_name PlayingCardData extends CardData
60 |
61 | enum SUITS {
62 | SPADES,
63 | CLUBS,
64 | DIAMONDS,
65 | HEARTS
66 | }
67 |
68 | @export var suit : SUITS
69 | @export var value : int
70 | @export var texture : Resource
71 | ```
72 |
73 | After setting this up you create your card resources as needed (`spades-a.tres`, `spades-2.tres`, `spades-3.tres`, etc.).
74 |
75 | The only requirement here is that you also provide it a `card_scene` `PackedScene` which will be explained next.
76 |
77 |
78 | ### `Card`
79 | A root node scene. Create your in-game card scene by using this as the root node. Generally this changes its display using it's `card_data` in the `update_display` method.
80 |
81 | #### Public Methods:
82 |
83 | `set_card_data(card_data : CardData) -> void`
84 |
85 | Set this scenes card data and updates the display.
86 |
87 | `set_auto_position_enabled(val : bool) -> void`
88 |
89 | Turns on/off autopositioning. This is helpful if you want the card in a deck but you also want to manually position the card somewhere else in the game world.
90 |
91 | `update_display() -> void`
92 |
93 | Manually update the card display. This is automatically called on `_ready` but you may also want to call it manually when one of the `Cards`'s `card_data` properties change.
94 |
95 | #### Example
96 | ```
97 | # playing_card.tscn
98 | class_name PlayingCard extends Card
99 |
100 | @onready var texture_rect: TextureRect = $TextureRect
101 |
102 | func update_display():
103 | texture_rect.texture = card_data.texture
104 |
105 | ```
106 |
107 |
108 | ### `Deck`
109 | A control node that manages a stack of cards. This is the main node your game will interact with and listen for signals on.
110 |
111 | At first listening for signals on the deck instead of on the card may seem unintuitive but this allows you to easily manage different interactions on cards on different decks. For example, your game shouldn't necessarily listen for a mouse entered signal on an individual card scene, it should listen for the deck signaling that a card within it has had the mouse enter it.
112 |
113 | #### Signals
114 | - `mouse_entered_card(card : Card)` - fires when the mouse enters the card
115 | - `mouse_exited_card(card : Card)` - fires when the mouse exits the card
116 | - `top_card_clicked(card : Card)` - fires when the top card of a deck is clicked
117 | - `card_clicked(card : Card)` - fires when any card in the deck is clicked
118 | - `card_picked_up(card : Card)` - fires when there is a mouse down event on a draggable card
119 | - `start_card_drag(card : Card)` - fires when a card starts being dragged
120 | - `card_dropped(card : Card, dropped_on_deck : Deck)` - fires when there is a mouse up event on a draggable card
121 | - `cards_updated` - fires when cards enter or leave the deck
122 |
123 | There is a quirk with the `mouse_exited_card` signal. It doesn't fire until the mouse takes an action. So for example, it doesn't necessarily fire immediately after `card_dropped`. The user must make a mouse action after dropping to trigger this exit event.
124 |
125 | #### Exported Variables
126 | - `x_spread`: float – Horizontal spread of cards in the deck
127 | - `y_spread`: float – Vertical spread of cards in the deck
128 | - `max_stack_size`: int – Maximum number of cards displayed in a stacked
129 | - `drag_behavior`: DRAG_BEHAVIOR – Dragging policy (NONE, ALL, TOP, CUSTOM).
130 | - `stack_behavior`: STACK_BEHAVIOR – Stacking policy (EXACT, CENTERED).
131 | - `card_drag_over_card_behavior`: CARD_DRAG_OVER_CARD_BEHAVIOR – Stacking policy (NONE, SWAP_POSITIONS).
132 | - `hand_rotation_curve`: Curve – Rotation curve for hands. This works best as a 2-point linear rise from -X to +X
133 | - `hand_vertical_curve`: Curve – Vertical curve for hands. This works best as a 3-point ease in/out from 0 to X to 0
134 |
135 | #### Public methods
136 |
137 | `create_from_card_data(card_data: CardData) -> Card`
138 |
139 | Creates a new card instance based on the provided CardData and adds it to the deck.
140 |
141 | ```
142 | var card_data = load("res://path/to/card_data.tres")
143 | var new_card = deck.create_from_card_data(card_data)
144 | ```
145 |
146 | `move_card_to_deck(deck: Deck, card: Card)`
147 |
148 | Moves a card from one deck to another
149 |
150 | ```
151 | deck1.move_card_to_deck(deck2, card)
152 | ```
153 |
154 | `shuffle() -> void`
155 |
156 | Randomizes the order of cards in the deck.
157 |
158 | ```
159 | deck.shuffle()
160 | ```
161 |
162 | `get_top_card() -> Card`
163 |
164 | Retrieves the top card of the deck without removing it.
165 |
166 | ```
167 | var top_card = deck.get_top_card()
168 | if top_card:
169 | print("Top card is:", top_card, top_card.card_data)
170 | ```
171 |
172 | `custom_can_card_be_dragged(card: Card) -> bool`
173 |
174 | Determines whether a specified card can be dragged. This method is intended to be overridden for custom dragging behavior when `drag_behavior` is set to `DRAG_BEHAVIOR.CUSTOM`
175 |
176 | ```
177 | func custom_can_card_be_dragged(card: Card) -> bool:
178 | return card.card_data.some_value >= 3
179 | ```
180 |
181 | `is_holding_a_card() -> bool`
182 |
183 | Determines whether the deck is currently holding a card
184 |
185 | ```
186 | if deck.is_holding_a_card():
187 | print(deck.get_held_card())
188 | ```
189 |
190 | `get_held_card() -> Card`
191 |
192 | Returns the held card if there is one
193 |
194 | ```
195 | print(deck.get_held_card())
196 | ```
197 |
198 | Thanks and have fun!
199 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/card.gd:
--------------------------------------------------------------------------------
1 | class_name Card extends Control
2 |
3 | var card_data : CardData
4 | var is_ready : bool = false
5 | var target_position : Vector2
6 | var target_rotation : float
7 | var mouse_down_point : Vector2
8 | var is_held : bool = false
9 | var is_dragging : bool = false
10 | var auto_position_enabled : bool = true
11 |
12 | @export var speed = 15.0
13 |
14 | func _ready():
15 | # the card doesn't connect to any main signals - we just let the deck do that
16 | # however, this should probably emit at least a few signals for games?
17 |
18 | # ensure sure clicking anything in the card passes the mouse actions up to the root node
19 | propagate_call("set_mouse_filter", [ Control.MOUSE_FILTER_PASS ])
20 |
21 | pivot_offset = size / 2
22 | is_ready = true
23 | target_position = global_position
24 | update_display()
25 |
26 |
27 | func set_card_data(_card_data):
28 | card_data = _card_data
29 | if is_ready:
30 | update_display()
31 |
32 | func set_auto_position_enabled(val : bool):
33 | auto_position_enabled = val
34 |
35 | func update_display():
36 | pass
37 |
38 | func _should_drag():
39 | return mouse_down_point != Vector2.ZERO and mouse_down_point != get_global_mouse_position() and is_held
40 |
41 | func _process(delta: float) -> void:
42 | if auto_position_enabled and is_ready:
43 | if _should_drag():
44 | if not is_dragging:
45 | var parent = get_parent() as Deck
46 | if parent:
47 | parent.emit_signal('start_card_drag', self)
48 | is_dragging = true
49 | rotation = 0
50 | global_position = get_global_mouse_position() - size * 0.5
51 | else:
52 | rotation = lerp_angle(rotation, target_rotation, speed * delta)
53 | var center_offset = (size * 0.5).rotated(rotation)
54 | global_position = lerp(global_position, (target_position - center_offset) + (size * 0.5), speed * delta)
55 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/card_data.gd:
--------------------------------------------------------------------------------
1 | class_name CardData extends Resource
2 |
3 | @export var card_scene : PackedScene
4 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/deck.gd:
--------------------------------------------------------------------------------
1 | class_name Deck extends Control
2 |
3 | enum DRAG_BEHAVIOR {
4 | NONE,
5 | ALL,
6 | TOP,
7 | CUSTOM
8 | }
9 |
10 | enum STACK_BEHAVIOR {
11 | EXACT,
12 | CENTERED
13 | }
14 |
15 | enum CARD_DRAG_OVER_CARD_BEHAVIOR {
16 | NONE,
17 | SWAP_POSITIONS
18 | }
19 |
20 | signal mouse_entered_card(card : Card)
21 | signal mouse_exited_card(card : Card)
22 | signal top_card_clicked(card : Card)
23 | signal card_clicked(card : Card)
24 | signal card_picked_up(card : Card)
25 | signal card_dropped(card : Card, dropped_on_deck : Deck)
26 | signal cards_updated
27 | signal start_card_drag(card : Card)
28 |
29 | @export var x_spread : float = 0
30 | @export var y_spread : float = 0
31 | @export var max_stack_size : int = -1
32 | @export var drag_behavior : DRAG_BEHAVIOR
33 | @export var stack_behavior : STACK_BEHAVIOR
34 | @export var card_drag_over_card_behavior : CARD_DRAG_OVER_CARD_BEHAVIOR
35 | @export var hand_rotation_curve : Curve #This works best as a 2-point linear rise from -X to +X
36 | @export var hand_vertical_curve : Curve # This works best as a 3-point ease in/out from 0 to X to 0
37 |
38 | var cards : Array[Card]
39 | var held_card : Card
40 | var click_timer = 0.0
41 |
42 | func create_from_card_data(card_data : CardData):
43 | var card_scene = card_data.card_scene.instantiate()
44 | card_scene.set_card_data(card_data)
45 | _add_card(card_scene)
46 | _update_display()
47 | emit_signal("cards_updated")
48 | return card_scene
49 |
50 | func move_card_to_deck(deck : Deck, card : Card):
51 | if card.is_connected('mouse_entered', _on_mouse_entered_card.bind(card)):
52 | card.disconnect('mouse_entered', _on_mouse_entered_card.bind(card))
53 | card.disconnect('mouse_exited', _on_mouse_exited_card.bind(card))
54 | card.disconnect('gui_input', _on_gui_input_card.bind(card))
55 | var last_pos = card.global_position
56 | remove_child(card)
57 | _update_display()
58 | emit_signal("cards_updated")
59 | deck._add_card(card)
60 | deck._update_display()
61 | deck.emit_signal("cards_updated")
62 | card.global_position = last_pos
63 |
64 | func _add_card(card : Card):
65 | add_child(card)
66 | if not card.is_connected('mouse_entered', _on_mouse_entered_card.bind(card)):
67 | card.connect('mouse_entered', _on_mouse_entered_card.bind(card))
68 | card.connect('mouse_exited', _on_mouse_exited_card.bind(card))
69 | card.connect('gui_input', _on_gui_input_card.bind(card))
70 |
71 | func is_holding_a_card():
72 | return held_card != null
73 |
74 | # when a card is picked up
75 | # turn off its mouse interactions so it can interact with cards below it
76 | # then set its z_index up so it *looks* like it is on top
77 | func _handle_card_picked_up(card : Card):
78 | held_card = card
79 | held_card.z_index = 1
80 | emit_signal('card_picked_up', card)
81 |
82 | func _handle_card_dropped(card : Card):
83 | emit_signal('card_dropped', held_card, _get_deck_at_position(get_global_mouse_position(), get_tree().root))
84 | held_card.is_held = false
85 | held_card.is_dragging = false
86 | held_card.z_index = 0
87 | held_card = null
88 |
89 | func _on_mouse_entered_card(card : Card):
90 | if held_card == null:
91 | emit_signal('mouse_entered_card', card)
92 |
93 | func shuffle():
94 | var children = get_children()
95 | children.shuffle()
96 | for child in get_children():
97 | remove_child(child)
98 | for child in children:
99 | add_child(child)
100 | _update_display()
101 |
102 | func _on_mouse_exited_card(card : Card):
103 | if held_card == null:
104 | emit_signal('mouse_exited_card', card)
105 |
106 | func _on_gui_input_card(event, card : Card):
107 | if event is InputEventMouseButton and event.pressed:
108 | click_timer = 0.0
109 | if event is InputEventMouseButton and not event.pressed and click_timer < 0.3:
110 | emit_signal('card_clicked', card)
111 | if card.get_index() == get_child_count() - 1:
112 | emit_signal('top_card_clicked', card)
113 |
114 | if event is InputEventMouseButton:
115 | var parent_deck = get_parent() as Deck
116 | if _can_drag_card(card):
117 | if event.is_pressed():
118 | card.is_held = true
119 | card.mouse_down_point = get_global_mouse_position()
120 | _handle_card_picked_up(card)
121 | if card.is_held and not event.is_pressed():
122 | _handle_card_dropped(card)
123 |
124 | func _can_drag_card(card):
125 | if held_card:
126 | return false
127 | if drag_behavior == Deck.DRAG_BEHAVIOR.ALL:
128 | return true
129 | if drag_behavior == Deck.DRAG_BEHAVIOR.TOP:
130 | return get_child(get_child_count() - 1) == card
131 | if drag_behavior == Deck.DRAG_BEHAVIOR.CUSTOM:
132 | return custom_can_card_be_dragged(card)
133 |
134 | func _update_display():
135 | for card in get_children():
136 | if max_stack_size != -1:
137 | var max_spread = min(max_stack_size - 1, card.get_index())
138 | card.target_position.x = position.x + max_spread * x_spread
139 | card.target_position.y = position.y + max_spread * y_spread
140 | card.target_rotation = 0
141 | card.update_display()
142 | else:
143 | if stack_behavior == STACK_BEHAVIOR.CENTERED:
144 | var hand_ratio = 0.5
145 | if get_child_count() > 1:
146 | hand_ratio = float(card.get_index()) / float(get_child_count() - 1)
147 | var middle_index = get_child_count() / 2.0
148 | var offset = card.get_index() - middle_index + 0.5
149 | var max_spread = min(max_stack_size - 1, abs(offset))
150 | card.target_position.x = ((size.x * 0.5) - (card.size.x * 0.5)) + position.x + (offset * x_spread)
151 | card.target_position.y = ((size.y * 0.5) - (card.size.y * 0.5)) + position.y + (offset * y_spread)
152 | if hand_rotation_curve:
153 | card.target_rotation = deg_to_rad(hand_rotation_curve.sample(hand_ratio))
154 | if hand_vertical_curve:
155 | if get_child_count() == 1:
156 | card.target_position.y -= hand_vertical_curve.sample(0)
157 | else:
158 | card.target_position.y -= hand_vertical_curve.sample(hand_ratio)
159 | card.update_display()
160 | else:
161 | var middle_index = get_child_count() / 2.0
162 | var offset = card.get_index()
163 | var max_spread = min(max_stack_size - 1, abs(offset))
164 | card.target_position.x = position.x + offset * x_spread
165 | card.target_position.y = position.y + offset * y_spread
166 | card.target_rotation = 0
167 | card.update_display()
168 |
169 | func _no_cards_are_held(node: Node) -> bool:
170 | if node is Card and node.is_held:
171 | return false
172 | for child in node.get_children():
173 | if not _no_cards_are_held(child):
174 | return false
175 | return true
176 |
177 | func get_top_card():
178 | if get_child_count():
179 | return get_child(-1)
180 | return null
181 |
182 | func custom_can_card_be_dragged(_card : Card):
183 | return false
184 |
185 |
186 | func _get_deck_at_position(global_pos: Vector2, node: Node) -> Deck:
187 | if node is Deck and (node as Deck).get_global_rect().has_point(global_pos):
188 | return node
189 | for child in node.get_children():
190 | if child is Node:
191 | var found = _get_deck_at_position(global_pos, child)
192 | if found:
193 | return found
194 | return null
195 |
196 | func _process(delta: float) -> void:
197 | click_timer += delta
198 | if held_card and card_drag_over_card_behavior == CARD_DRAG_OVER_CARD_BEHAVIOR.SWAP_POSITIONS:
199 | var held_card_index = held_card.get_index()
200 | if held_card_index > 0:
201 | var prev_card = get_child(held_card_index - 1)
202 | if prev_card.global_position.x > held_card.global_position.x:
203 | move_child(prev_card, held_card_index)
204 | _update_display()
205 | if held_card_index < get_child_count() - 1:
206 | var next_card = get_child(held_card_index + 1)
207 | if next_card.global_position.x < held_card.global_position.x:
208 | move_child(next_card, held_card_index)
209 | _update_display()
210 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_02.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_02.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://h80auu7g0y7e"
6 | path="res://.godot/imported/card_clubs_02.png-4453a2f26c9cb02bc7341424efb8d46c.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_02.png"
14 | dest_files=["res://.godot/imported/card_clubs_02.png-4453a2f26c9cb02bc7341424efb8d46c.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_03.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_03.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cl136cdngo8rg"
6 | path="res://.godot/imported/card_clubs_03.png-abf809447e49be7fcff2ac47b4a44cd2.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_03.png"
14 | dest_files=["res://.godot/imported/card_clubs_03.png-abf809447e49be7fcff2ac47b4a44cd2.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_04.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_04.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dipdxmy731dfw"
6 | path="res://.godot/imported/card_clubs_04.png-250c6ad183f46a9fd7abf10896bf32b9.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_04.png"
14 | dest_files=["res://.godot/imported/card_clubs_04.png-250c6ad183f46a9fd7abf10896bf32b9.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_05.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_05.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://d0lb1mc8rxn6e"
6 | path="res://.godot/imported/card_clubs_05.png-9a94d541a7cf04b9c63850dc890c9757.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_05.png"
14 | dest_files=["res://.godot/imported/card_clubs_05.png-9a94d541a7cf04b9c63850dc890c9757.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_06.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_06.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cdahhicyn1p8u"
6 | path="res://.godot/imported/card_clubs_06.png-e8a0be42fbd30cc7dc2fa2a24828bd14.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_06.png"
14 | dest_files=["res://.godot/imported/card_clubs_06.png-e8a0be42fbd30cc7dc2fa2a24828bd14.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_07.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_07.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bcerhl6tkwv7i"
6 | path="res://.godot/imported/card_clubs_07.png-d5f7940fd084f0341035124aa1bcf7d9.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_07.png"
14 | dest_files=["res://.godot/imported/card_clubs_07.png-d5f7940fd084f0341035124aa1bcf7d9.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_08.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_08.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://coykrh1sne0el"
6 | path="res://.godot/imported/card_clubs_08.png-3e2a80df7f1b997c3a90bc5a20775cc6.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_08.png"
14 | dest_files=["res://.godot/imported/card_clubs_08.png-3e2a80df7f1b997c3a90bc5a20775cc6.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_09.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_09.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://drrej6owhj78j"
6 | path="res://.godot/imported/card_clubs_09.png-201c88a73346a1052591af9afa66f11b.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_09.png"
14 | dest_files=["res://.godot/imported/card_clubs_09.png-201c88a73346a1052591af9afa66f11b.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_10.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_10.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://catr1jf0bk815"
6 | path="res://.godot/imported/card_clubs_10.png-62b70fba78645ad25b0caf513f3229e0.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_10.png"
14 | dest_files=["res://.godot/imported/card_clubs_10.png-62b70fba78645ad25b0caf513f3229e0.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_A.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_A.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://b230xrutufm13"
6 | path="res://.godot/imported/card_clubs_A.png-1251b41aa6f308a0ba578f25db546574.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_A.png"
14 | dest_files=["res://.godot/imported/card_clubs_A.png-1251b41aa6f308a0ba578f25db546574.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_J.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_J.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_J.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://4jqloccx75oy"
6 | path="res://.godot/imported/card_clubs_J.png-3aeb12c6b1f045a219fb85afa606318f.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_J.png"
14 | dest_files=["res://.godot/imported/card_clubs_J.png-3aeb12c6b1f045a219fb85afa606318f.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_K.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_K.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_K.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bfptf7y1aqvkt"
6 | path="res://.godot/imported/card_clubs_K.png-479b0bfd38125e71f3eaf7e03baa36b5.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_K.png"
14 | dest_files=["res://.godot/imported/card_clubs_K.png-479b0bfd38125e71f3eaf7e03baa36b5.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_Q.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_Q.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_Q.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bb63q8tir16ee"
6 | path="res://.godot/imported/card_clubs_Q.png-4d8d21345543208ade8ac3ad7f189abd.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_Q.png"
14 | dest_files=["res://.godot/imported/card_clubs_Q.png-4d8d21345543208ade8ac3ad7f189abd.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_02.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_02.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dmegaad4eicdp"
6 | path="res://.godot/imported/card_diamonds_02.png-40c59d592735e9cd737c5f0933b2b926.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_02.png"
14 | dest_files=["res://.godot/imported/card_diamonds_02.png-40c59d592735e9cd737c5f0933b2b926.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_03.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_03.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://d242buhgma4pc"
6 | path="res://.godot/imported/card_diamonds_03.png-d47f824766f02b0e2b7146763404ddad.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_03.png"
14 | dest_files=["res://.godot/imported/card_diamonds_03.png-d47f824766f02b0e2b7146763404ddad.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_04.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_04.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://6b1bmn6hd2hm"
6 | path="res://.godot/imported/card_diamonds_04.png-f6fcc632f6cb249089565e72e4cded23.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_04.png"
14 | dest_files=["res://.godot/imported/card_diamonds_04.png-f6fcc632f6cb249089565e72e4cded23.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_05.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_05.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://caqjhbvooan2a"
6 | path="res://.godot/imported/card_diamonds_05.png-a841b79a1b540fbcc6e997d01b6eac5c.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_05.png"
14 | dest_files=["res://.godot/imported/card_diamonds_05.png-a841b79a1b540fbcc6e997d01b6eac5c.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_06.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_06.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://d3cwn32pjqqo3"
6 | path="res://.godot/imported/card_diamonds_06.png-4099999750bc830f3eae2c61fa9bb00d.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_06.png"
14 | dest_files=["res://.godot/imported/card_diamonds_06.png-4099999750bc830f3eae2c61fa9bb00d.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_07.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_07.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bxwgk5d4jtqia"
6 | path="res://.godot/imported/card_diamonds_07.png-056aeafdaaa67e61e6c4d233154b21c7.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_07.png"
14 | dest_files=["res://.godot/imported/card_diamonds_07.png-056aeafdaaa67e61e6c4d233154b21c7.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_08.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_08.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://ika6tege7s2"
6 | path="res://.godot/imported/card_diamonds_08.png-997d0501e17f560d5957f9647541e8b0.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_08.png"
14 | dest_files=["res://.godot/imported/card_diamonds_08.png-997d0501e17f560d5957f9647541e8b0.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_09.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_09.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cv1ydgluxeijo"
6 | path="res://.godot/imported/card_diamonds_09.png-8796cff2147cde47d8ae847b28c186cc.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_09.png"
14 | dest_files=["res://.godot/imported/card_diamonds_09.png-8796cff2147cde47d8ae847b28c186cc.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_10.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_10.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://totc2wdmdaa8"
6 | path="res://.godot/imported/card_diamonds_10.png-226a82d7fb055e34e903325796bdcc41.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_10.png"
14 | dest_files=["res://.godot/imported/card_diamonds_10.png-226a82d7fb055e34e903325796bdcc41.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_A.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_A.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://b5yoyjnef0nc4"
6 | path="res://.godot/imported/card_diamonds_A.png-a0ff4644cb82b2794f44b45bb9c1942e.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_A.png"
14 | dest_files=["res://.godot/imported/card_diamonds_A.png-a0ff4644cb82b2794f44b45bb9c1942e.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_J.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_J.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_J.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dgpuoctclaqng"
6 | path="res://.godot/imported/card_diamonds_J.png-875a806fd3a9b6c451b5d554cc404193.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_J.png"
14 | dest_files=["res://.godot/imported/card_diamonds_J.png-875a806fd3a9b6c451b5d554cc404193.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_K.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_K.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_K.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://b2fsah73x8kt7"
6 | path="res://.godot/imported/card_diamonds_K.png-c1cc9bf047e49bf48cf1bdc048045c77.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_K.png"
14 | dest_files=["res://.godot/imported/card_diamonds_K.png-c1cc9bf047e49bf48cf1bdc048045c77.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_Q.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_Q.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_Q.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://iyqu413bv5a"
6 | path="res://.godot/imported/card_diamonds_Q.png-deab6e959a53c88b34c1872e416dea7e.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_Q.png"
14 | dest_files=["res://.godot/imported/card_diamonds_Q.png-deab6e959a53c88b34c1872e416dea7e.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_02.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_02.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://c4eyhulofxpog"
6 | path="res://.godot/imported/card_hearts_02.png-e702330bd10c40044a248144b879b58a.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_02.png"
14 | dest_files=["res://.godot/imported/card_hearts_02.png-e702330bd10c40044a248144b879b58a.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_03.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_03.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dl8g38i78yqh8"
6 | path="res://.godot/imported/card_hearts_03.png-b0286257e55dd7d3cbba1f7b9b31eda4.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_03.png"
14 | dest_files=["res://.godot/imported/card_hearts_03.png-b0286257e55dd7d3cbba1f7b9b31eda4.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_04.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_04.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://d2o43w3836l1"
6 | path="res://.godot/imported/card_hearts_04.png-82f3340936d8f5b83af563aa1f763d40.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_04.png"
14 | dest_files=["res://.godot/imported/card_hearts_04.png-82f3340936d8f5b83af563aa1f763d40.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_05.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_05.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bxb4an6l73upa"
6 | path="res://.godot/imported/card_hearts_05.png-68954b8fa7c3bf92a77463728f732f27.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_05.png"
14 | dest_files=["res://.godot/imported/card_hearts_05.png-68954b8fa7c3bf92a77463728f732f27.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_06.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_06.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://fsiet3chgvpx"
6 | path="res://.godot/imported/card_hearts_06.png-aa01060052f20c39ce03e20d2192ee1c.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_06.png"
14 | dest_files=["res://.godot/imported/card_hearts_06.png-aa01060052f20c39ce03e20d2192ee1c.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_07.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_07.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://06l2c3ruenwa"
6 | path="res://.godot/imported/card_hearts_07.png-5debc19e107230d9f0b063189002def8.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_07.png"
14 | dest_files=["res://.godot/imported/card_hearts_07.png-5debc19e107230d9f0b063189002def8.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_08.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_08.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://c6edtafiq4drr"
6 | path="res://.godot/imported/card_hearts_08.png-233a51c09d2bd6969e70b06281b5b965.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_08.png"
14 | dest_files=["res://.godot/imported/card_hearts_08.png-233a51c09d2bd6969e70b06281b5b965.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_09.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_09.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dkaw4ocrsi5mj"
6 | path="res://.godot/imported/card_hearts_09.png-f7c3fee9d028d77732efb9e5935b07c6.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_09.png"
14 | dest_files=["res://.godot/imported/card_hearts_09.png-f7c3fee9d028d77732efb9e5935b07c6.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_10.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_10.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://12480esw0nt4"
6 | path="res://.godot/imported/card_hearts_10.png-670baf9ac3aff03220ac7786fc4b2269.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_10.png"
14 | dest_files=["res://.godot/imported/card_hearts_10.png-670baf9ac3aff03220ac7786fc4b2269.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_A.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_A.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://drdxlyk2nvy0e"
6 | path="res://.godot/imported/card_hearts_A.png-3fbfea976845201c122ca8eb69003b27.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_A.png"
14 | dest_files=["res://.godot/imported/card_hearts_A.png-3fbfea976845201c122ca8eb69003b27.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_J.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_J.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_J.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dr0q0s8p2okdc"
6 | path="res://.godot/imported/card_hearts_J.png-a1ceb9014b2433135602a3336414f50f.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_J.png"
14 | dest_files=["res://.godot/imported/card_hearts_J.png-a1ceb9014b2433135602a3336414f50f.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_K.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_K.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_K.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://d1a8apoufc0mt"
6 | path="res://.godot/imported/card_hearts_K.png-e86c0cd69cb559e2ca70f19d307cb3dd.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_K.png"
14 | dest_files=["res://.godot/imported/card_hearts_K.png-e86c0cd69cb559e2ca70f19d307cb3dd.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_Q.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_Q.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_Q.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://c1d7qj2s7urpp"
6 | path="res://.godot/imported/card_hearts_Q.png-faaec3fbb34d8cc104be478a9e85cb93.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_Q.png"
14 | dest_files=["res://.godot/imported/card_hearts_Q.png-faaec3fbb34d8cc104be478a9e85cb93.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dpg01wywd5p27"
6 | path="res://.godot/imported/card_back.png-0290300230d2dcc9082591a64b1ad67c.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png"
14 | dest_files=["res://.godot/imported/card_back.png-0290300230d2dcc9082591a64b1ad67c.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_black.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_black.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://d0mu6kn2ohd45"
6 | path="res://.godot/imported/card_joker_black.png-04968118e84bfb0e61f41293a4ae2125.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_black.png"
14 | dest_files=["res://.godot/imported/card_joker_black.png-04968118e84bfb0e61f41293a4ae2125.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_red.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_red.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cwrxrplwuhtx3"
6 | path="res://.godot/imported/card_joker_red.png-47aa18069f4ccc2387ad1957618936ee.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_joker_red.png"
14 | dest_files=["res://.godot/imported/card_joker_red.png-47aa18069f4ccc2387ad1957618936ee.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_02.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_02.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cic356ya4l8sn"
6 | path="res://.godot/imported/card_spades_02.png-15cd7da2131d3f32237b68ebfbbf4ae3.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_02.png"
14 | dest_files=["res://.godot/imported/card_spades_02.png-15cd7da2131d3f32237b68ebfbbf4ae3.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_03.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_03.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cqxmuhx16kckj"
6 | path="res://.godot/imported/card_spades_03.png-d9d02b879b0bede83398f88a596e9942.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_03.png"
14 | dest_files=["res://.godot/imported/card_spades_03.png-d9d02b879b0bede83398f88a596e9942.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_04.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_04.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://c0mlsyin0yydh"
6 | path="res://.godot/imported/card_spades_04.png-d7e7aa6cc064ba6aa163fa1ba8a41dff.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_04.png"
14 | dest_files=["res://.godot/imported/card_spades_04.png-d7e7aa6cc064ba6aa163fa1ba8a41dff.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_05.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_05.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://f0m8qulf07jx"
6 | path="res://.godot/imported/card_spades_05.png-045f0fd41773c06cfc53865088764d0e.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_05.png"
14 | dest_files=["res://.godot/imported/card_spades_05.png-045f0fd41773c06cfc53865088764d0e.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_06.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_06.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://b5wj7i3okbi30"
6 | path="res://.godot/imported/card_spades_06.png-5d8f9dcbaa2bf5e8de1f8436ed457129.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_06.png"
14 | dest_files=["res://.godot/imported/card_spades_06.png-5d8f9dcbaa2bf5e8de1f8436ed457129.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_07.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_07.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://yih28d66tbv8"
6 | path="res://.godot/imported/card_spades_07.png-ec01a69745ba184136700599849a136e.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_07.png"
14 | dest_files=["res://.godot/imported/card_spades_07.png-ec01a69745ba184136700599849a136e.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_08.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_08.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://b2uwnuleinf6i"
6 | path="res://.godot/imported/card_spades_08.png-116eaad3ed1d73432f6e6f010587edf3.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_08.png"
14 | dest_files=["res://.godot/imported/card_spades_08.png-116eaad3ed1d73432f6e6f010587edf3.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_09.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_09.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://buhlvgyidum4t"
6 | path="res://.godot/imported/card_spades_09.png-f84829bb721f6a4550e389d82aca9740.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_09.png"
14 | dest_files=["res://.godot/imported/card_spades_09.png-f84829bb721f6a4550e389d82aca9740.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_10.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_10.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://dj20lp0trgslp"
6 | path="res://.godot/imported/card_spades_10.png-e43a86ddb6ff401eb17118d531d93e74.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_10.png"
14 | dest_files=["res://.godot/imported/card_spades_10.png-e43a86ddb6ff401eb17118d531d93e74.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_A.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_A.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://delr3jqcnk06h"
6 | path="res://.godot/imported/card_spades_A.png-dce4800287f751d894204cd325e39fc4.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_A.png"
14 | dest_files=["res://.godot/imported/card_spades_A.png-dce4800287f751d894204cd325e39fc4.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_J.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_J.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_J.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://g7nny0cq66qj"
6 | path="res://.godot/imported/card_spades_J.png-5a6710b9b993e9e2c9367ca1822030aa.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_J.png"
14 | dest_files=["res://.godot/imported/card_spades_J.png-5a6710b9b993e9e2c9367ca1822030aa.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_K.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_K.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_K.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://cbyekf5xdc4rn"
6 | path="res://.godot/imported/card_spades_K.png-040d41a9129aff25f4de6f8dea3ac973.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_K.png"
14 | dest_files=["res://.godot/imported/card_spades_K.png-040d41a9129aff25f4de6f8dea3ac973.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_Q.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/insideout-andrew/deckbuilder-framework/41199fc02c3c9abaae1505737bd9c9080254fe15/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_Q.png
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_Q.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://doclwmcflxst2"
6 | path="res://.godot/imported/card_spades_Q.png-031149d2c780b8d2fe1162c1737d3f44.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_Q.png"
14 | dest_files=["res://.godot/imported/card_spades_Q.png-031149d2c780b8d2fe1162c1737d3f44.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/10.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://y6m0477rf0ay"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_27uqb"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_82l8t"]
5 | [ext_resource type="Texture2D" uid="uid://catr1jf0bk815" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_10.png" id="3_e5evl"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_mgrfk"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_mgrfk")
11 | suit = 1
12 | value = 10
13 | back_image = ExtResource("1_27uqb")
14 | front_image = ExtResource("3_e5evl")
15 | card_scene = ExtResource("2_82l8t")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/2.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://coxaxec2dltu"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_i7crp"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_4l35i"]
5 | [ext_resource type="Texture2D" uid="uid://h80auu7g0y7e" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_02.png" id="3_d4pns"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_kp5ny"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_kp5ny")
11 | suit = 1
12 | value = 2
13 | back_image = ExtResource("1_i7crp")
14 | front_image = ExtResource("3_d4pns")
15 | card_scene = ExtResource("2_4l35i")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/3.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bbyogwnnp5rhq"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_f8v1v"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_1jiib"]
5 | [ext_resource type="Texture2D" uid="uid://cl136cdngo8rg" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_03.png" id="3_5qdd1"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_6v516"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_6v516")
11 | suit = 1
12 | value = 3
13 | back_image = ExtResource("1_f8v1v")
14 | front_image = ExtResource("3_5qdd1")
15 | card_scene = ExtResource("2_1jiib")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/4.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://c4nir3q5n1kwa"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_h4pfj"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_ditve"]
5 | [ext_resource type="Texture2D" uid="uid://dipdxmy731dfw" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_04.png" id="3_ix5j6"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_0tbho"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_0tbho")
11 | suit = 1
12 | value = 4
13 | back_image = ExtResource("1_h4pfj")
14 | front_image = ExtResource("3_ix5j6")
15 | card_scene = ExtResource("2_ditve")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/5.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://c7we5lo16srdu"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_l7dta"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_70su6"]
5 | [ext_resource type="Texture2D" uid="uid://d0lb1mc8rxn6e" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_05.png" id="3_tqwqf"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_rhrk6"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_rhrk6")
11 | suit = 1
12 | value = 5
13 | back_image = ExtResource("1_l7dta")
14 | front_image = ExtResource("3_tqwqf")
15 | card_scene = ExtResource("2_70su6")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/6.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cl3fbioyk7ld4"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_l6vey"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_mbdio"]
5 | [ext_resource type="Texture2D" uid="uid://cdahhicyn1p8u" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_06.png" id="3_uqhds"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_l8ymh"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_l8ymh")
11 | suit = 1
12 | value = 6
13 | back_image = ExtResource("1_l6vey")
14 | front_image = ExtResource("3_uqhds")
15 | card_scene = ExtResource("2_mbdio")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/7.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://16aoldnvdilo"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_4su6y"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_pcv5t"]
5 | [ext_resource type="Texture2D" uid="uid://bcerhl6tkwv7i" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_07.png" id="3_urf45"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_7omkg"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_7omkg")
11 | suit = 1
12 | value = 7
13 | back_image = ExtResource("1_4su6y")
14 | front_image = ExtResource("3_urf45")
15 | card_scene = ExtResource("2_pcv5t")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/8.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://c0b5i266y2d8p"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_wmqix"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_cskpp"]
5 | [ext_resource type="Texture2D" uid="uid://coykrh1sne0el" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_08.png" id="3_wytb5"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_p1c1h"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_p1c1h")
11 | suit = 1
12 | value = 8
13 | back_image = ExtResource("1_wmqix")
14 | front_image = ExtResource("3_wytb5")
15 | card_scene = ExtResource("2_cskpp")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/9.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bdlcxhi1ndpiq"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_mix2p"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_8xsbx"]
5 | [ext_resource type="Texture2D" uid="uid://drrej6owhj78j" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_09.png" id="3_r4ncv"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_nmnyy"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_nmnyy")
11 | suit = 1
12 | value = 9
13 | back_image = ExtResource("1_mix2p")
14 | front_image = ExtResource("3_r4ncv")
15 | card_scene = ExtResource("2_8xsbx")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/a.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://g88jefvgfhsl"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_6yjid"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_qu6p1"]
5 | [ext_resource type="Texture2D" uid="uid://b230xrutufm13" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_A.png" id="3_0qlkl"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_nwbay"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_nwbay")
11 | suit = 1
12 | value = 1
13 | back_image = ExtResource("1_6yjid")
14 | front_image = ExtResource("3_0qlkl")
15 | card_scene = ExtResource("2_qu6p1")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/j.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://qklx2o1vgqkg"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_g04cj"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_x0cou"]
5 | [ext_resource type="Texture2D" uid="uid://4jqloccx75oy" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_J.png" id="3_rv3oh"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_sbwgv"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_sbwgv")
11 | suit = 1
12 | value = 11
13 | back_image = ExtResource("1_g04cj")
14 | front_image = ExtResource("3_rv3oh")
15 | card_scene = ExtResource("2_x0cou")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/k.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://hgd8mwlynrgt"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_lcdfx"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_48jiq"]
5 | [ext_resource type="Texture2D" uid="uid://bfptf7y1aqvkt" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_K.png" id="3_x84uk"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_ltior"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_ltior")
11 | suit = 1
12 | value = 13
13 | back_image = ExtResource("1_lcdfx")
14 | front_image = ExtResource("3_x84uk")
15 | card_scene = ExtResource("2_48jiq")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/clubs/q.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://d0cel05wtd7g2"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_sxuo5"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_dxr7k"]
5 | [ext_resource type="Texture2D" uid="uid://bb63q8tir16ee" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_Q.png" id="3_cfefu"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_o5dia"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_o5dia")
11 | suit = 1
12 | value = 12
13 | back_image = ExtResource("1_sxuo5")
14 | front_image = ExtResource("3_cfefu")
15 | card_scene = ExtResource("2_dxr7k")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/10.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://drohglop4gjqh"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_ibcc5"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_ed8l7"]
5 | [ext_resource type="Texture2D" uid="uid://totc2wdmdaa8" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_10.png" id="3_mlt8w"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_mu7oy"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_mu7oy")
11 | suit = 2
12 | value = 10
13 | back_image = ExtResource("1_ibcc5")
14 | front_image = ExtResource("3_mlt8w")
15 | card_scene = ExtResource("2_ed8l7")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/2.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://pr1pwtc5qvaq"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_0dx8w"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_2unaa"]
5 | [ext_resource type="Texture2D" uid="uid://dmegaad4eicdp" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_02.png" id="3_xw8he"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_oc0u0"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_oc0u0")
11 | suit = 2
12 | value = 2
13 | back_image = ExtResource("1_0dx8w")
14 | front_image = ExtResource("3_xw8he")
15 | card_scene = ExtResource("2_2unaa")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/3.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cfh3wwjku42wq"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_p52o7"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_7lf4g"]
5 | [ext_resource type="Texture2D" uid="uid://d242buhgma4pc" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_03.png" id="3_jmo82"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_leyv6"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_leyv6")
11 | suit = 2
12 | value = 3
13 | back_image = ExtResource("1_p52o7")
14 | front_image = ExtResource("3_jmo82")
15 | card_scene = ExtResource("2_7lf4g")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/4.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cvhtuitybmyt8"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_ivkaw"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_afdlg"]
5 | [ext_resource type="Texture2D" uid="uid://6b1bmn6hd2hm" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_04.png" id="3_63tim"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_cuuak"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_cuuak")
11 | suit = 2
12 | value = 4
13 | back_image = ExtResource("1_ivkaw")
14 | front_image = ExtResource("3_63tim")
15 | card_scene = ExtResource("2_afdlg")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/5.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bogvpymdah1g7"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_xf4fr"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_irfjg"]
5 | [ext_resource type="Texture2D" uid="uid://caqjhbvooan2a" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_05.png" id="3_p5c2r"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_fcj7n"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_fcj7n")
11 | suit = 2
12 | value = 5
13 | back_image = ExtResource("1_xf4fr")
14 | front_image = ExtResource("3_p5c2r")
15 | card_scene = ExtResource("2_irfjg")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/6.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cv8exfmwg53no"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_xu2xt"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_2fcrf"]
5 | [ext_resource type="Texture2D" uid="uid://d3cwn32pjqqo3" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_06.png" id="3_n3ocs"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_a6q42"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_a6q42")
11 | suit = 2
12 | value = 6
13 | back_image = ExtResource("1_xu2xt")
14 | front_image = ExtResource("3_n3ocs")
15 | card_scene = ExtResource("2_2fcrf")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/7.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bgdsqgx86nthd"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_hm0eu"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_8gsst"]
5 | [ext_resource type="Texture2D" uid="uid://bxwgk5d4jtqia" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_07.png" id="3_m6ux2"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_6ubnf"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_6ubnf")
11 | suit = 2
12 | value = 7
13 | back_image = ExtResource("1_hm0eu")
14 | front_image = ExtResource("3_m6ux2")
15 | card_scene = ExtResource("2_8gsst")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/8.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://c5jwd4gursiq1"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_qj3md"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_c7vib"]
5 | [ext_resource type="Texture2D" uid="uid://ika6tege7s2" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_08.png" id="3_42dnl"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_1bw4a"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_1bw4a")
11 | suit = 2
12 | value = 8
13 | back_image = ExtResource("1_qj3md")
14 | front_image = ExtResource("3_42dnl")
15 | card_scene = ExtResource("2_c7vib")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/9.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://66mo5fuqmwkj"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_plde0"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_v2seu"]
5 | [ext_resource type="Texture2D" uid="uid://cv1ydgluxeijo" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_09.png" id="3_x3qfa"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_yw8io"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_yw8io")
11 | suit = 2
12 | value = 9
13 | back_image = ExtResource("1_plde0")
14 | front_image = ExtResource("3_x3qfa")
15 | card_scene = ExtResource("2_v2seu")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/a.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bjs3a88o7bl1t"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_lq6to"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_mxdkq"]
5 | [ext_resource type="Texture2D" uid="uid://b5yoyjnef0nc4" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_A.png" id="3_x2kbp"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_hrub2"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_hrub2")
11 | suit = 2
12 | value = 1
13 | back_image = ExtResource("1_lq6to")
14 | front_image = ExtResource("3_x2kbp")
15 | card_scene = ExtResource("2_mxdkq")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/j.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://c002w0yvfo2t7"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_qs2wt"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_xopkj"]
5 | [ext_resource type="Texture2D" uid="uid://dgpuoctclaqng" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_J.png" id="3_aj3ii"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_gselm"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_gselm")
11 | suit = 2
12 | value = 11
13 | back_image = ExtResource("1_qs2wt")
14 | front_image = ExtResource("3_aj3ii")
15 | card_scene = ExtResource("2_xopkj")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/k.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cv2ph8jgoetko"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_4d0cu"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_tv8yt"]
5 | [ext_resource type="Texture2D" uid="uid://b2fsah73x8kt7" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_K.png" id="3_i0f1n"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_0nkhs"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_0nkhs")
11 | suit = 2
12 | value = 13
13 | back_image = ExtResource("1_4d0cu")
14 | front_image = ExtResource("3_i0f1n")
15 | card_scene = ExtResource("2_tv8yt")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/diamonds/q.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bplg1l5e55xxc"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_0p7kl"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_m87ve"]
5 | [ext_resource type="Texture2D" uid="uid://iyqu413bv5a" path="res://addons/deckbuilder-framework/playing-cards/assets/diamonds/card_diamonds_Q.png" id="3_btr3d"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_3mnpg"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_3mnpg")
11 | suit = 2
12 | value = 12
13 | back_image = ExtResource("1_0p7kl")
14 | front_image = ExtResource("3_btr3d")
15 | card_scene = ExtResource("2_m87ve")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/10.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cjn1lqkcu7irl"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_ajful"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_s7g7x"]
5 | [ext_resource type="Texture2D" uid="uid://12480esw0nt4" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_10.png" id="3_irfxw"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_qqjby"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_qqjby")
11 | suit = 3
12 | value = 10
13 | back_image = ExtResource("1_ajful")
14 | front_image = ExtResource("3_irfxw")
15 | card_scene = ExtResource("2_s7g7x")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/2.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://dlimfn378olnj"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_mo7cn"]
4 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="1_pbuly"]
5 | [ext_resource type="Texture2D" uid="uid://c4eyhulofxpog" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_02.png" id="2_ixr08"]
6 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_npp2l"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("1_pbuly")
11 | suit = 3
12 | value = 2
13 | back_image = ExtResource("1_mo7cn")
14 | front_image = ExtResource("2_ixr08")
15 | flipped = false
16 | card_scene = ExtResource("2_npp2l")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/3.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://52je2hhbxnv0"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_s5rja"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_ajury"]
5 | [ext_resource type="Texture2D" uid="uid://dl8g38i78yqh8" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_03.png" id="3_ygp2p"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_hadpx"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_hadpx")
11 | suit = 3
12 | value = 3
13 | back_image = ExtResource("1_s5rja")
14 | front_image = ExtResource("3_ygp2p")
15 | card_scene = ExtResource("2_ajury")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/4.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://dpkpbdcibyte5"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_erwui"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_lcln8"]
5 | [ext_resource type="Texture2D" uid="uid://d2o43w3836l1" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_04.png" id="3_5epcv"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_b0eyy"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_b0eyy")
11 | suit = 3
12 | value = 4
13 | back_image = ExtResource("1_erwui")
14 | front_image = ExtResource("3_5epcv")
15 | card_scene = ExtResource("2_lcln8")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/5.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://jhy74xt2fpko"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_m2ud6"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_b6qrg"]
5 | [ext_resource type="Texture2D" uid="uid://bxb4an6l73upa" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_05.png" id="3_84b72"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_dw25i"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_dw25i")
11 | suit = 3
12 | value = 5
13 | back_image = ExtResource("1_m2ud6")
14 | front_image = ExtResource("3_84b72")
15 | card_scene = ExtResource("2_b6qrg")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/6.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cutg27couo651"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_2ylfi"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_3whvf"]
5 | [ext_resource type="Texture2D" uid="uid://fsiet3chgvpx" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_06.png" id="3_qb7re"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_sy4wp"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_sy4wp")
11 | suit = 3
12 | value = 6
13 | back_image = ExtResource("1_2ylfi")
14 | front_image = ExtResource("3_qb7re")
15 | card_scene = ExtResource("2_3whvf")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/7.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://b1l3ctiycf5uh"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_lrhe2"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_67gea"]
5 | [ext_resource type="Texture2D" uid="uid://06l2c3ruenwa" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_07.png" id="3_wkjdk"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_j2jd3"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_j2jd3")
11 | suit = 3
12 | value = 7
13 | back_image = ExtResource("1_lrhe2")
14 | front_image = ExtResource("3_wkjdk")
15 | card_scene = ExtResource("2_67gea")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/8.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://b5lfemdcth0rt"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_a22oc"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_o4dxy"]
5 | [ext_resource type="Texture2D" uid="uid://c6edtafiq4drr" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_08.png" id="3_ldwn1"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_t6l8n"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_t6l8n")
11 | suit = 3
12 | value = 8
13 | back_image = ExtResource("1_a22oc")
14 | front_image = ExtResource("3_ldwn1")
15 | card_scene = ExtResource("2_o4dxy")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/9.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://hc32xj2nfqsi"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_58sma"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_lcljk"]
5 | [ext_resource type="Texture2D" uid="uid://dkaw4ocrsi5mj" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_09.png" id="3_5divt"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_ijuxu"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_ijuxu")
11 | suit = 3
12 | value = 9
13 | back_image = ExtResource("1_58sma")
14 | front_image = ExtResource("3_5divt")
15 | card_scene = ExtResource("2_lcljk")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/a.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://4ddkwclofddn"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_0dq6n"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_2ou6b"]
5 | [ext_resource type="Texture2D" uid="uid://drdxlyk2nvy0e" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_A.png" id="3_drj00"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_dysbj"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_dysbj")
11 | suit = 3
12 | value = 1
13 | back_image = ExtResource("1_0dq6n")
14 | front_image = ExtResource("3_drj00")
15 | card_scene = ExtResource("2_2ou6b")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/j.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://blakkksp6ymbj"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_epiae"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_ywi6b"]
5 | [ext_resource type="Texture2D" uid="uid://dr0q0s8p2okdc" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_J.png" id="3_yce7u"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_t044a"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_t044a")
11 | suit = 3
12 | value = 11
13 | back_image = ExtResource("1_epiae")
14 | front_image = ExtResource("3_yce7u")
15 | card_scene = ExtResource("2_ywi6b")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/k.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://c7v48ues2scg4"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_4atvu"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_bpjc3"]
5 | [ext_resource type="Texture2D" uid="uid://d1a8apoufc0mt" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_K.png" id="3_ew82q"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_hm78u"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_hm78u")
11 | suit = 3
12 | value = 13
13 | back_image = ExtResource("1_4atvu")
14 | front_image = ExtResource("3_ew82q")
15 | card_scene = ExtResource("2_bpjc3")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/hearts/q.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cjmbwmljg2bpe"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_6tegy"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_84bqt"]
5 | [ext_resource type="Texture2D" uid="uid://c1d7qj2s7urpp" path="res://addons/deckbuilder-framework/playing-cards/assets/hearts/card_hearts_Q.png" id="3_xyxfg"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_732u0"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_732u0")
11 | suit = 3
12 | value = 12
13 | back_image = ExtResource("1_6tegy")
14 | front_image = ExtResource("3_xyxfg")
15 | card_scene = ExtResource("2_84bqt")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/playing_card.gd:
--------------------------------------------------------------------------------
1 | class_name PlayingCard extends Card
2 |
3 | enum STATES {
4 | IDLE,
5 | HOVERED,
6 | SELECTED
7 | }
8 |
9 | @onready var backface: TextureRect = $Textures/Backface
10 | @onready var frontface: TextureRect = $Textures/Frontface
11 | @onready var animation_player: AnimationPlayer = $AnimationPlayer
12 |
13 | var flipped := false
14 |
15 | func set_flipped(val : bool):
16 | flipped = val
17 | update_display()
18 |
19 | func update_display():
20 | if card_data:
21 | backface.texture = card_data.back_image
22 | frontface.texture = card_data.front_image
23 | if flipped:
24 | backface.show()
25 | frontface.hide()
26 | else:
27 | backface.hide()
28 | frontface.show()
29 |
30 | func play_animation(name : String) -> void:
31 | animation_player.play(name)
32 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/playing_card.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=8 format=3 uid="uid://c46yrc0608agj"]
2 |
3 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card.gd" id="1_hs0n4"]
4 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="2_3f5y4"]
5 | [ext_resource type="Texture2D" uid="uid://h80auu7g0y7e" path="res://addons/deckbuilder-framework/playing-cards/assets/clubs/card_clubs_02.png" id="3_yp3jq"]
6 |
7 | [sub_resource type="Animation" id="Animation_rd3ob"]
8 | length = 0.001
9 | tracks/0/type = "value"
10 | tracks/0/imported = false
11 | tracks/0/enabled = true
12 | tracks/0/path = NodePath("Textures:position")
13 | tracks/0/interp = 1
14 | tracks/0/loop_wrap = true
15 | tracks/0/keys = {
16 | "times": PackedFloat32Array(0),
17 | "transitions": PackedFloat32Array(1),
18 | "update": 0,
19 | "values": [Vector2(0, 0)]
20 | }
21 |
22 | [sub_resource type="Animation" id="Animation_rsems"]
23 | resource_name = "enter_hover"
24 | length = 0.2
25 | step = 0.025
26 | tracks/0/type = "value"
27 | tracks/0/imported = false
28 | tracks/0/enabled = true
29 | tracks/0/path = NodePath("Textures:position")
30 | tracks/0/interp = 1
31 | tracks/0/loop_wrap = true
32 | tracks/0/keys = {
33 | "times": PackedFloat32Array(0, 0.05),
34 | "transitions": PackedFloat32Array(1, 1),
35 | "update": 0,
36 | "values": [Vector2(0, 0), Vector2(0, -30)]
37 | }
38 |
39 | [sub_resource type="Animation" id="Animation_p2dul"]
40 | resource_name = "exit_hover"
41 | length = 0.2
42 | step = 0.025
43 | tracks/0/type = "value"
44 | tracks/0/imported = false
45 | tracks/0/enabled = true
46 | tracks/0/path = NodePath("Textures:position")
47 | tracks/0/interp = 1
48 | tracks/0/loop_wrap = true
49 | tracks/0/keys = {
50 | "times": PackedFloat32Array(0, 0.05),
51 | "transitions": PackedFloat32Array(1, 1),
52 | "update": 0,
53 | "values": [Vector2(0, -30), Vector2(0, 0)]
54 | }
55 |
56 | [sub_resource type="AnimationLibrary" id="AnimationLibrary_hxlcd"]
57 | _data = {
58 | "RESET": SubResource("Animation_rd3ob"),
59 | "enter_hover": SubResource("Animation_rsems"),
60 | "exit_hover": SubResource("Animation_p2dul")
61 | }
62 |
63 | [node name="PlayingCard" type="Control"]
64 | layout_mode = 3
65 | anchors_preset = 0
66 | offset_right = 84.0
67 | offset_bottom = 120.0
68 | script = ExtResource("1_hs0n4")
69 |
70 | [node name="Textures" type="Control" parent="."]
71 | anchors_preset = 0
72 | offset_right = 40.0
73 | offset_bottom = 40.0
74 |
75 | [node name="Backface" type="TextureRect" parent="Textures"]
76 | layout_mode = 0
77 | offset_right = 84.0
78 | offset_bottom = 120.0
79 | texture = ExtResource("2_3f5y4")
80 |
81 | [node name="Frontface" type="TextureRect" parent="Textures"]
82 | layout_mode = 0
83 | offset_right = 84.0
84 | offset_bottom = 120.0
85 | texture = ExtResource("3_yp3jq")
86 |
87 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
88 | libraries = {
89 | "": SubResource("AnimationLibrary_hxlcd")
90 | }
91 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/playing_card_data.gd:
--------------------------------------------------------------------------------
1 | class_name PlayingCardData extends CardData
2 |
3 | enum SUITS {
4 | SPADES,
5 | CLUBS,
6 | DIAMONDS,
7 | HEARTS,
8 | NONE
9 | }
10 |
11 | @export var suit : SUITS
12 | @export var value : int
13 | @export var back_image : Resource
14 | @export var front_image : Resource
15 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/10.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://b41004noj4r28"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_37r0g"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_al5sk"]
5 | [ext_resource type="Texture2D" uid="uid://dj20lp0trgslp" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_10.png" id="3_havpr"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_n83wu"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_n83wu")
11 | suit = 0
12 | value = 10
13 | back_image = ExtResource("1_37r0g")
14 | front_image = ExtResource("3_havpr")
15 | card_scene = ExtResource("2_al5sk")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/2.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://4v4vlyvse61t"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_3qrkn"]
4 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="1_xdsml"]
5 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_0l6yn"]
6 | [ext_resource type="Texture2D" uid="uid://cic356ya4l8sn" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_02.png" id="2_tyoca"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("1_xdsml")
11 | suit = 0
12 | value = 2
13 | back_image = ExtResource("1_3qrkn")
14 | front_image = ExtResource("2_tyoca")
15 | flipped = false
16 | card_scene = ExtResource("2_0l6yn")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/3.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://hoxxf74ciir0"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_45nn6"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_y2tyv"]
5 | [ext_resource type="Texture2D" uid="uid://cqxmuhx16kckj" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_03.png" id="3_8o6fm"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_nhc1w"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_nhc1w")
11 | suit = 0
12 | value = 3
13 | back_image = ExtResource("1_45nn6")
14 | front_image = ExtResource("3_8o6fm")
15 | flipped = false
16 | card_scene = ExtResource("2_y2tyv")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/4.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cd5nnbkffcpex"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_uhjow"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_llgk5"]
5 | [ext_resource type="Texture2D" uid="uid://c0mlsyin0yydh" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_04.png" id="3_jw122"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_eik4o"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_eik4o")
11 | suit = 0
12 | value = 4
13 | back_image = ExtResource("1_uhjow")
14 | front_image = ExtResource("3_jw122")
15 | flipped = false
16 | card_scene = ExtResource("2_llgk5")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/5.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cre68esain6vh"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_jsv8a"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_eb8uo"]
5 | [ext_resource type="Texture2D" uid="uid://f0m8qulf07jx" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_05.png" id="3_71e64"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_i6axv"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_i6axv")
11 | suit = 0
12 | value = 5
13 | back_image = ExtResource("1_jsv8a")
14 | front_image = ExtResource("3_71e64")
15 | flipped = false
16 | card_scene = ExtResource("2_eb8uo")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/6.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://brtjov7qbvhbt"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_fcqnl"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_713c1"]
5 | [ext_resource type="Texture2D" uid="uid://b5wj7i3okbi30" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_06.png" id="3_rp8gb"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_egxcy"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_egxcy")
11 | suit = 0
12 | value = 6
13 | back_image = ExtResource("1_fcqnl")
14 | front_image = ExtResource("3_rp8gb")
15 | flipped = false
16 | card_scene = ExtResource("2_713c1")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/7.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://di5ji6c14eret"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_vcdcg"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_8q88p"]
5 | [ext_resource type="Texture2D" uid="uid://yih28d66tbv8" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_07.png" id="3_dv17n"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_n2aqs"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_n2aqs")
11 | suit = 0
12 | value = 7
13 | back_image = ExtResource("1_vcdcg")
14 | front_image = ExtResource("3_dv17n")
15 | flipped = false
16 | card_scene = ExtResource("2_8q88p")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/8.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cq3v0wcvbq0w1"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_ydmjm"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_hxs14"]
5 | [ext_resource type="Texture2D" uid="uid://b2uwnuleinf6i" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_08.png" id="3_sh736"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_ck1hm"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_ck1hm")
11 | suit = 0
12 | value = 8
13 | back_image = ExtResource("1_ydmjm")
14 | front_image = ExtResource("3_sh736")
15 | card_scene = ExtResource("2_hxs14")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/9.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://bm40k7icwhp33"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_awv5x"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_ho4b0"]
5 | [ext_resource type="Texture2D" uid="uid://buhlvgyidum4t" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_09.png" id="3_7lpfm"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_rcknk"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_rcknk")
11 | suit = 0
12 | value = 9
13 | back_image = ExtResource("1_awv5x")
14 | front_image = ExtResource("3_7lpfm")
15 | card_scene = ExtResource("2_ho4b0")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/a.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://but55oqlcelf4"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_bkiv3"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_6j6p2"]
5 | [ext_resource type="Texture2D" uid="uid://delr3jqcnk06h" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_A.png" id="2_eq6ya"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="3_t0y73"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("3_t0y73")
11 | suit = 0
12 | value = 1
13 | back_image = ExtResource("1_bkiv3")
14 | front_image = ExtResource("2_eq6ya")
15 | flipped = false
16 | card_scene = ExtResource("2_6j6p2")
17 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/j.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://b3s1soobb7xs6"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_kqidm"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_xmhx4"]
5 | [ext_resource type="Texture2D" uid="uid://g7nny0cq66qj" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_J.png" id="3_lj5ft"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_tuj4x"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_tuj4x")
11 | suit = 0
12 | value = 11
13 | back_image = ExtResource("1_kqidm")
14 | front_image = ExtResource("3_lj5ft")
15 | card_scene = ExtResource("2_xmhx4")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/k.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://cao4yah5o0p4e"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_i2guv"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_u5a2c"]
5 | [ext_resource type="Texture2D" uid="uid://cbyekf5xdc4rn" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_K.png" id="3_dugkm"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_td5mn"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_td5mn")
11 | suit = 0
12 | value = 13
13 | back_image = ExtResource("1_i2guv")
14 | front_image = ExtResource("3_dugkm")
15 | card_scene = ExtResource("2_u5a2c")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/playing-cards/spades/q.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Resource" script_class="PlayingCardData" load_steps=5 format=3 uid="uid://d4ifal8rly1c2"]
2 |
3 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="1_66cv6"]
4 | [ext_resource type="PackedScene" uid="uid://c46yrc0608agj" path="res://addons/deckbuilder-framework/playing-cards/playing_card.tscn" id="2_o4ctx"]
5 | [ext_resource type="Texture2D" uid="uid://doclwmcflxst2" path="res://addons/deckbuilder-framework/playing-cards/assets/spades/card_spades_Q.png" id="3_5ef5u"]
6 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/playing-cards/playing_card_data.gd" id="4_qb3re"]
7 |
8 | [resource]
9 | resource_local_to_scene = true
10 | script = ExtResource("4_qb3re")
11 | suit = 0
12 | value = 12
13 | back_image = ExtResource("1_66cv6")
14 | front_image = ExtResource("3_5ef5u")
15 | card_scene = ExtResource("2_o4ctx")
16 |
--------------------------------------------------------------------------------
/addons/deckbuilder-framework/plugin.cfg:
--------------------------------------------------------------------------------
1 | [plugin]
2 |
3 | name="Deckbuilder Framework"
4 | description="This system implements card and deck mechanics in Godot Engine. It features drawing, shuffling, and many more standard card behaviors and interactions. A standard deck of playing cards comes packaged with this plugin, but it can really be used for any kind of card based game."
5 | author="Andrew Vickerman"
6 | version="1.0.0"
7 | script="deck.gd"
8 |
--------------------------------------------------------------------------------
/example.gd:
--------------------------------------------------------------------------------
1 | extends Control
2 |
3 | @onready var simple: Button = $CenterContainer/VBoxContainer/Simple
4 | @onready var solitaire: Button = $CenterContainer/VBoxContainer/Solitaire
5 | @onready var typical_hand: Button = $CenterContainer/VBoxContainer/TypicalHand
6 |
7 | func _ready() -> void:
8 | solitaire.connect('pressed', func(): get_tree().change_scene_to_file("res://solitaire/solitaire.tscn"))
9 | simple.connect('pressed', func(): get_tree().change_scene_to_file("res://simple/simple.tscn"))
10 | typical_hand.connect('pressed', func(): get_tree().change_scene_to_file("res://fancy/fancy.tscn"))
11 |
--------------------------------------------------------------------------------
/example.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=3 uid="uid://dciwjfxsfd34j"]
2 |
3 | [ext_resource type="Script" path="res://example.gd" id="1_n7tyh"]
4 |
5 | [node name="Example" type="Control"]
6 | layout_mode = 3
7 | anchors_preset = 15
8 | anchor_right = 1.0
9 | anchor_bottom = 1.0
10 | grow_horizontal = 2
11 | grow_vertical = 2
12 | script = ExtResource("1_n7tyh")
13 |
14 | [node name="CenterContainer" type="CenterContainer" parent="."]
15 | layout_mode = 1
16 | anchors_preset = 15
17 | anchor_right = 1.0
18 | anchor_bottom = 1.0
19 | grow_horizontal = 2
20 | grow_vertical = 2
21 |
22 | [node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
23 | custom_minimum_size = Vector2(200, 0)
24 | layout_mode = 2
25 |
26 | [node name="Label" type="Label" parent="CenterContainer/VBoxContainer"]
27 | layout_mode = 2
28 | text = "Examples"
29 | horizontal_alignment = 1
30 |
31 | [node name="Simple" type="Button" parent="CenterContainer/VBoxContainer"]
32 | layout_mode = 2
33 | text = "Simple Playground"
34 |
35 | [node name="TypicalHand" type="Button" parent="CenterContainer/VBoxContainer"]
36 | layout_mode = 2
37 | text = "Fancy Playground"
38 |
39 | [node name="Solitaire" type="Button" parent="CenterContainer/VBoxContainer"]
40 | layout_mode = 2
41 | text = "Solitaire"
42 |
--------------------------------------------------------------------------------
/fancy/fancy.gd:
--------------------------------------------------------------------------------
1 | extends Control
2 |
3 | # load all playing cards
4 | var all_cards = [
5 | preload("res://addons/deckbuilder-framework/playing-cards/spades/2.tres"),
6 | preload("res://addons/deckbuilder-framework/playing-cards/spades/3.tres"),
7 | preload("res://addons/deckbuilder-framework/playing-cards/spades/4.tres"),
8 | preload("res://addons/deckbuilder-framework/playing-cards/spades/5.tres"),
9 | preload("res://addons/deckbuilder-framework/playing-cards/spades/6.tres"),
10 | preload("res://addons/deckbuilder-framework/playing-cards/spades/7.tres"),
11 | preload("res://addons/deckbuilder-framework/playing-cards/spades/8.tres"),
12 | preload("res://addons/deckbuilder-framework/playing-cards/spades/9.tres"),
13 | preload("res://addons/deckbuilder-framework/playing-cards/spades/10.tres"),
14 | preload("res://addons/deckbuilder-framework/playing-cards/spades/j.tres"),
15 | preload("res://addons/deckbuilder-framework/playing-cards/spades/q.tres"),
16 | preload("res://addons/deckbuilder-framework/playing-cards/spades/k.tres"),
17 | preload("res://addons/deckbuilder-framework/playing-cards/spades/a.tres"),
18 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/2.tres"),
19 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/3.tres"),
20 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/4.tres"),
21 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/5.tres"),
22 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/6.tres"),
23 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/7.tres"),
24 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/8.tres"),
25 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/9.tres"),
26 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/10.tres"),
27 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/j.tres"),
28 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/q.tres"),
29 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/k.tres"),
30 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/a.tres"),
31 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/2.tres"),
32 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/3.tres"),
33 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/4.tres"),
34 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/5.tres"),
35 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/6.tres"),
36 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/7.tres"),
37 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/8.tres"),
38 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/9.tres"),
39 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/10.tres"),
40 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/j.tres"),
41 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/q.tres"),
42 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/k.tres"),
43 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/a.tres"),
44 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/2.tres"),
45 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/3.tres"),
46 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/4.tres"),
47 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/5.tres"),
48 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/6.tres"),
49 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/7.tres"),
50 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/8.tres"),
51 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/9.tres"),
52 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/10.tres"),
53 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/j.tres"),
54 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/q.tres"),
55 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/k.tres"),
56 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/a.tres")
57 | ]
58 |
59 |
60 | @onready var draw_deck: Deck = $Draw
61 | @onready var hand: Deck = $Hand
62 | @onready var discard: Deck = $Discard
63 |
64 | @onready var draw_label: Label = $DrawLabel
65 | @onready var discard_label: Label = $DiscardLabel
66 | @onready var hand_label: Label = $HandLabel
67 |
68 | @onready var back_button: Button = $BackButton
69 |
70 | func _ready() -> void:
71 | _connect_signals()
72 | _create_cards()
73 | _shuffle_and_draw_starting_hand()
74 |
75 | func _create_cards():
76 | for card_data in all_cards:
77 | var card = draw_deck.create_from_card_data(card_data)
78 | card.set_flipped(true)
79 | draw_deck.shuffle()
80 |
81 | func _shuffle_and_draw_starting_hand():
82 | randomize()
83 | for _i in range(7):
84 | var card : PlayingCard = draw_deck.get_top_card()
85 | draw_deck.move_card_to_deck(hand, card)
86 | card.set_flipped(false)
87 | await get_tree().create_timer(0.1).timeout
88 |
89 | func _connect_signals():
90 | back_button.connect('pressed', func(): get_tree().change_scene_to_file("res://example.tscn"))
91 |
92 | # handle deck interactions
93 | draw_deck.connect('top_card_clicked', _draw_pile_clicked)
94 | draw_deck.connect('cards_updated', _on_deck_updated)
95 |
96 | # handle hand interactions
97 | hand.connect('mouse_entered_card', _mouse_entered_card_in_hand)
98 | hand.connect('mouse_exited_card', _mouse_exited_card_in_hand)
99 | hand.connect('start_card_drag', _start_drag_card_in_hand)
100 | hand.connect('cards_updated', _on_hand_updated)
101 | hand.connect('card_picked_up', _on_card_picked_up_from_hand)
102 | hand.connect('card_dropped', _on_card_dropped_from_hand)
103 |
104 | # handle discard interactions
105 | discard.connect('top_card_clicked', _dicard_clicked)
106 | discard.connect('cards_updated', _on_discard_updated)
107 |
108 | # draw interactions
109 | # -----------------
110 |
111 | func _draw_pile_clicked(card : PlayingCard):
112 | if hand.get_child_count() < 7:
113 | card.set_flipped(false)
114 | draw_deck.move_card_to_deck(hand, card)
115 |
116 | func _on_deck_updated():
117 | draw_label.text = "Deck (%s)" % draw_deck.get_child_count()
118 |
119 |
120 | # hand interactions
121 | # -----------------
122 |
123 | func _mouse_entered_card_in_hand(card : PlayingCard):
124 | card.play_animation('enter_hover')
125 |
126 | func _mouse_exited_card_in_hand(card : PlayingCard):
127 | if card.animation_player.assigned_animation == "enter_hover":
128 | card.play_animation('exit_hover')
129 |
130 | func _start_drag_card_in_hand(card : PlayingCard):
131 | card.play_animation('RESET')
132 |
133 | func _on_card_picked_up_from_hand(_card : PlayingCard):
134 | discard_label.text = "Drop to discard (%s)" % discard.get_child_count()
135 |
136 | func _on_card_dropped_from_hand(card : PlayingCard, dropped_on_deck : Deck):
137 | discard_label.text = "Discard (%s)" % discard.get_child_count()
138 | if dropped_on_deck == discard:
139 | card.play_animation('RESET')
140 | hand.move_card_to_deck(discard, card)
141 |
142 | func _on_hand_updated():
143 | hand_label.text = "Hand (%s)" % hand.get_child_count()
144 |
145 |
146 | # discard interactions
147 | # -----------------
148 |
149 | func _dicard_clicked(_card : PlayingCard):
150 | for card in discard.get_children():
151 | card.set_flipped(true)
152 | discard.move_card_to_deck(draw_deck, card)
153 | draw_deck.shuffle()
154 |
155 | func _on_discard_updated():
156 | discard_label.text = "Discard (%s)" % discard.get_child_count()
157 |
--------------------------------------------------------------------------------
/fancy/fancy.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=7 format=3 uid="uid://by6nvua5b78dq"]
2 |
3 | [ext_resource type="Script" path="res://fancy/fancy.gd" id="1_dflma"]
4 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="2_n0bpp"]
5 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/deck.gd" id="3_h1847"]
6 |
7 | [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_ia0he"]
8 |
9 | [sub_resource type="Curve" id="Curve_cwe2b"]
10 | min_value = -15.0
11 | max_value = 15.0
12 | _data = [Vector2(0, -15), 0.0, 30.0, 0, 1, Vector2(1, 15), 30.0, 0.0, 1, 0]
13 | point_count = 2
14 |
15 | [sub_resource type="Curve" id="Curve_hu1xe"]
16 | max_value = 25.0
17 | _data = [Vector2(0, 0), 0.0, 125.0, 0, 0, Vector2(0.497608, 25), 0.0, 0.0, 0, 0, Vector2(1, 0), -125.0, 0.0, 0, 0]
18 | point_count = 3
19 |
20 | [node name="Fancy" type="Control"]
21 | layout_mode = 3
22 | anchors_preset = 15
23 | anchor_right = 1.0
24 | anchor_bottom = 1.0
25 | grow_horizontal = 2
26 | grow_vertical = 2
27 | script = ExtResource("1_dflma")
28 |
29 | [node name="TextureRect" type="TextureRect" parent="."]
30 | modulate = Color(0.169245, 0.169245, 0.169245, 1)
31 | layout_mode = 0
32 | offset_left = 196.0
33 | offset_top = 405.0
34 | offset_right = 1214.0
35 | offset_bottom = 523.0
36 | texture = SubResource("PlaceholderTexture2D_ia0he")
37 |
38 | [node name="Backgrounds" type="Control" parent="."]
39 | modulate = Color(0.226707, 0.226707, 0.226707, 1)
40 | anchors_preset = 0
41 |
42 | [node name="TextureRect" type="TextureRect" parent="Backgrounds"]
43 | layout_mode = 0
44 | offset_left = 194.0
45 | offset_top = 187.0
46 | offset_right = 278.0
47 | offset_bottom = 307.0
48 | texture = ExtResource("2_n0bpp")
49 |
50 | [node name="TextureRect2" type="TextureRect" parent="Backgrounds"]
51 | layout_mode = 0
52 | offset_left = 1128.0
53 | offset_top = 187.0
54 | offset_right = 1212.0
55 | offset_bottom = 307.0
56 | texture = ExtResource("2_n0bpp")
57 |
58 | [node name="Draw" type="Control" parent="."]
59 | anchors_preset = 0
60 | offset_left = 194.0
61 | offset_top = 187.0
62 | offset_right = 278.0
63 | offset_bottom = 307.0
64 | script = ExtResource("3_h1847")
65 | x_spread = -0.5
66 | y_spread = -1.0
67 |
68 | [node name="Hand" type="Control" parent="."]
69 | anchors_preset = 0
70 | offset_left = 197.0
71 | offset_top = 406.0
72 | offset_right = 1213.0
73 | offset_bottom = 522.0
74 | script = ExtResource("3_h1847")
75 | x_spread = 60.0
76 | drag_behavior = 1
77 | stack_behavior = 1
78 | card_drag_over_card_behavior = 1
79 | hand_rotation_curve = SubResource("Curve_cwe2b")
80 | hand_vertical_curve = SubResource("Curve_hu1xe")
81 |
82 | [node name="Discard" type="Control" parent="."]
83 | anchors_preset = 0
84 | offset_left = 1128.0
85 | offset_top = 187.0
86 | offset_right = 1212.0
87 | offset_bottom = 307.0
88 | script = ExtResource("3_h1847")
89 | x_spread = -0.5
90 | y_spread = -1.0
91 |
92 | [node name="DrawLabel" type="Label" parent="."]
93 | layout_mode = 0
94 | offset_left = 132.0
95 | offset_top = 320.0
96 | offset_right = 339.0
97 | offset_bottom = 343.0
98 | text = "Deck (0)"
99 | horizontal_alignment = 1
100 |
101 | [node name="DiscardLabel" type="Label" parent="."]
102 | layout_mode = 0
103 | offset_left = 1072.0
104 | offset_top = 309.0
105 | offset_right = 1268.0
106 | offset_bottom = 332.0
107 | text = "Discard (0)"
108 | horizontal_alignment = 1
109 |
110 | [node name="HandLabel" type="Label" parent="."]
111 | layout_mode = 0
112 | offset_left = 641.0
113 | offset_top = 528.0
114 | offset_right = 768.0
115 | offset_bottom = 551.0
116 | text = "Hand (0)"
117 | horizontal_alignment = 1
118 |
119 | [node name="BackButton" type="Button" parent="."]
120 | layout_mode = 0
121 | offset_top = 768.0
122 | offset_right = 91.0
123 | offset_bottom = 799.0
124 | text = "Back"
125 |
--------------------------------------------------------------------------------
/icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/icon.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://t6f5vpohchr6"
6 | path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://icon.svg"
14 | dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 | svg/scale=1.0
36 | editor/scale_with_editor_scale=false
37 | editor/convert_colors_with_editor_theme=false
38 |
--------------------------------------------------------------------------------
/project.godot:
--------------------------------------------------------------------------------
1 | ; Engine configuration file.
2 | ; It's best edited using the editor UI and not directly,
3 | ; since the parameters that go here are not all obvious.
4 | ;
5 | ; Format:
6 | ; [section] ; section goes between []
7 | ; param=value ; assign values to parameters
8 |
9 | config_version=5
10 |
11 | [application]
12 |
13 | config/name="Deckbuilder Framework"
14 | run/main_scene="res://example.tscn"
15 | config/features=PackedStringArray("4.3", "GL Compatibility")
16 | config/icon="res://icon.svg"
17 |
18 | [display]
19 |
20 | window/size/viewport_width=1400
21 | window/size/viewport_height=800
22 | window/stretch/mode="canvas_items"
23 |
24 | [rendering]
25 |
26 | textures/canvas_textures/default_texture_filter=0
27 | renderer/rendering_method="gl_compatibility"
28 | renderer/rendering_method.mobile="gl_compatibility"
29 | environment/defaults/default_clear_color=Color(0.203414, 0.0465482, 0.234614, 1)
30 |
--------------------------------------------------------------------------------
/simple/simple.gd:
--------------------------------------------------------------------------------
1 | extends Control
2 |
3 | # load all playing cards
4 | var all_cards = [
5 | preload("res://addons/deckbuilder-framework/playing-cards/spades/2.tres"),
6 | preload("res://addons/deckbuilder-framework/playing-cards/spades/3.tres"),
7 | preload("res://addons/deckbuilder-framework/playing-cards/spades/4.tres"),
8 | preload("res://addons/deckbuilder-framework/playing-cards/spades/5.tres"),
9 | preload("res://addons/deckbuilder-framework/playing-cards/spades/6.tres"),
10 | preload("res://addons/deckbuilder-framework/playing-cards/spades/7.tres"),
11 | preload("res://addons/deckbuilder-framework/playing-cards/spades/8.tres"),
12 | preload("res://addons/deckbuilder-framework/playing-cards/spades/9.tres"),
13 | preload("res://addons/deckbuilder-framework/playing-cards/spades/10.tres"),
14 | preload("res://addons/deckbuilder-framework/playing-cards/spades/j.tres"),
15 | preload("res://addons/deckbuilder-framework/playing-cards/spades/q.tres"),
16 | preload("res://addons/deckbuilder-framework/playing-cards/spades/k.tres"),
17 | preload("res://addons/deckbuilder-framework/playing-cards/spades/a.tres"),
18 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/2.tres"),
19 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/3.tres"),
20 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/4.tres"),
21 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/5.tres"),
22 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/6.tres"),
23 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/7.tres"),
24 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/8.tres"),
25 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/9.tres"),
26 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/10.tres"),
27 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/j.tres"),
28 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/q.tres"),
29 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/k.tres"),
30 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/a.tres"),
31 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/2.tres"),
32 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/3.tres"),
33 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/4.tres"),
34 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/5.tres"),
35 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/6.tres"),
36 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/7.tres"),
37 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/8.tres"),
38 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/9.tres"),
39 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/10.tres"),
40 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/j.tres"),
41 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/q.tres"),
42 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/k.tres"),
43 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/a.tres"),
44 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/2.tres"),
45 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/3.tres"),
46 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/4.tres"),
47 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/5.tres"),
48 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/6.tres"),
49 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/7.tres"),
50 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/8.tres"),
51 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/9.tres"),
52 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/10.tres"),
53 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/j.tres"),
54 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/q.tres"),
55 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/k.tres"),
56 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/a.tres")
57 | ]
58 |
59 |
60 | @onready var draw_deck: Deck = $Draw
61 | @onready var hand: Deck = $Hand
62 | @onready var discard: Deck = $Discard
63 | @onready var back_button: Button = $BackButton
64 |
65 | func _ready() -> void:
66 | _connect_signals()
67 | _create_cards()
68 | _shuffle_and_draw_starting_hand()
69 |
70 | func _connect_signals():
71 | back_button.connect('pressed', func(): get_tree().change_scene_to_file("res://example.tscn"))
72 | draw_deck.connect('top_card_clicked', _draw_pile_clicked)
73 | hand.connect('card_dropped', _on_card_dropped_from_hand)
74 | discard.connect('top_card_clicked', _dicard_clicked)
75 |
76 | func _create_cards():
77 | for card_data in all_cards:
78 | var card = draw_deck.create_from_card_data(card_data)
79 | card.set_flipped(true)
80 |
81 | func _shuffle_and_draw_starting_hand():
82 | randomize()
83 | draw_deck.shuffle()
84 | for _i in range(7):
85 | var card : PlayingCard = draw_deck.get_top_card()
86 | draw_deck.move_card_to_deck(hand, card)
87 | card.set_flipped(false)
88 |
89 | # draw interaction
90 | # -----------------
91 | func _draw_pile_clicked(card : PlayingCard):
92 | if hand.get_child_count() < 16:
93 | card.set_flipped(false)
94 | draw_deck.move_card_to_deck(hand, card)
95 |
96 | # hand interaction
97 | # -----------------
98 | func _on_card_dropped_from_hand(card : PlayingCard, dropped_on_deck : Deck):
99 | if dropped_on_deck == discard:
100 | hand.move_card_to_deck(discard, card)
101 |
102 |
103 | # discard interactions
104 | # -----------------
105 | func _dicard_clicked(_card : PlayingCard):
106 | for card in discard.get_children():
107 | card.set_flipped(true)
108 | discard.move_card_to_deck(draw_deck, card)
109 | draw_deck.shuffle()
110 |
--------------------------------------------------------------------------------
/simple/simple.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=5 format=3 uid="uid://c8funai6d30gl"]
2 |
3 | [ext_resource type="Script" path="res://simple/simple.gd" id="1_aore1"]
4 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="2_g5cl1"]
5 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/deck.gd" id="3_co7tq"]
6 |
7 | [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_ia0he"]
8 |
9 | [node name="Simple" type="Control"]
10 | layout_mode = 3
11 | anchors_preset = 15
12 | anchor_right = 1.0
13 | anchor_bottom = 1.0
14 | grow_horizontal = 2
15 | grow_vertical = 2
16 | script = ExtResource("1_aore1")
17 |
18 | [node name="TextureRect" type="TextureRect" parent="."]
19 | modulate = Color(0.169245, 0.169245, 0.169245, 1)
20 | layout_mode = 0
21 | offset_left = 196.0
22 | offset_top = 405.0
23 | offset_right = 1214.0
24 | offset_bottom = 523.0
25 | texture = SubResource("PlaceholderTexture2D_ia0he")
26 |
27 | [node name="Backgrounds" type="Control" parent="."]
28 | modulate = Color(0.226707, 0.226707, 0.226707, 1)
29 | anchors_preset = 0
30 |
31 | [node name="TextureRect" type="TextureRect" parent="Backgrounds"]
32 | layout_mode = 0
33 | offset_left = 194.0
34 | offset_top = 187.0
35 | offset_right = 278.0
36 | offset_bottom = 307.0
37 | texture = ExtResource("2_g5cl1")
38 |
39 | [node name="TextureRect2" type="TextureRect" parent="Backgrounds"]
40 | layout_mode = 0
41 | offset_left = 1128.0
42 | offset_top = 187.0
43 | offset_right = 1212.0
44 | offset_bottom = 307.0
45 | texture = ExtResource("2_g5cl1")
46 |
47 | [node name="Draw" type="Control" parent="."]
48 | anchors_preset = 0
49 | offset_left = 194.0
50 | offset_top = 187.0
51 | offset_right = 278.0
52 | offset_bottom = 307.0
53 | script = ExtResource("3_co7tq")
54 | x_spread = -0.5
55 | y_spread = -1.0
56 |
57 | [node name="Hand" type="Control" parent="."]
58 | anchors_preset = 0
59 | offset_left = 197.0
60 | offset_top = 406.0
61 | offset_right = 1213.0
62 | offset_bottom = 522.0
63 | script = ExtResource("3_co7tq")
64 | x_spread = 60.0
65 | drag_behavior = 1
66 | stack_behavior = 1
67 | card_drag_over_card_behavior = 1
68 |
69 | [node name="Discard" type="Control" parent="."]
70 | anchors_preset = 0
71 | offset_left = 1128.0
72 | offset_top = 187.0
73 | offset_right = 1212.0
74 | offset_bottom = 307.0
75 | script = ExtResource("3_co7tq")
76 | x_spread = -0.5
77 | y_spread = -1.0
78 |
79 | [node name="BackButton" type="Button" parent="."]
80 | layout_mode = 0
81 | offset_top = 768.0
82 | offset_right = 91.0
83 | offset_bottom = 799.0
84 | text = "Back"
85 |
--------------------------------------------------------------------------------
/solitaire/build_deck.gd:
--------------------------------------------------------------------------------
1 | class_name BuildDeck extends Deck
2 |
3 | # keep track of which suit was first played on this deck
4 | var suit : PlayingCardData.SUITS = PlayingCardData.SUITS.NONE
5 |
6 | # keep track of thet last played card on this deck
7 | var required_value : int = 1
8 |
9 | # check if this deck can hold a given card
10 | func can_hold_card(card : PlayingCard):
11 | if suit == PlayingCardData.SUITS.NONE:
12 | return card.card_data.value == required_value
13 | else:
14 | return suit == card.card_data.suit && card.card_data.value == required_value
15 |
16 | # play a card on this deck and update the required value
17 | func play_card(card : Card):
18 | if suit == PlayingCardData.SUITS.NONE:
19 | suit = card.card_data.suit
20 | var card_parent : Deck = card.get_parent()
21 | card_parent.move_card_to_deck(self, card)
22 | required_value += 1
23 |
--------------------------------------------------------------------------------
/solitaire/solitaire.gd:
--------------------------------------------------------------------------------
1 | extends Control
2 |
3 |
4 | # first preload all cards
5 | var all_cards = [
6 | preload("res://addons/deckbuilder-framework/playing-cards/spades/2.tres"),
7 | preload("res://addons/deckbuilder-framework/playing-cards/spades/3.tres"),
8 | preload("res://addons/deckbuilder-framework/playing-cards/spades/4.tres"),
9 | preload("res://addons/deckbuilder-framework/playing-cards/spades/5.tres"),
10 | preload("res://addons/deckbuilder-framework/playing-cards/spades/6.tres"),
11 | preload("res://addons/deckbuilder-framework/playing-cards/spades/7.tres"),
12 | preload("res://addons/deckbuilder-framework/playing-cards/spades/8.tres"),
13 | preload("res://addons/deckbuilder-framework/playing-cards/spades/9.tres"),
14 | preload("res://addons/deckbuilder-framework/playing-cards/spades/10.tres"),
15 | preload("res://addons/deckbuilder-framework/playing-cards/spades/j.tres"),
16 | preload("res://addons/deckbuilder-framework/playing-cards/spades/q.tres"),
17 | preload("res://addons/deckbuilder-framework/playing-cards/spades/k.tres"),
18 | preload("res://addons/deckbuilder-framework/playing-cards/spades/a.tres"),
19 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/2.tres"),
20 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/3.tres"),
21 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/4.tres"),
22 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/5.tres"),
23 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/6.tres"),
24 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/7.tres"),
25 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/8.tres"),
26 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/9.tres"),
27 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/10.tres"),
28 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/j.tres"),
29 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/q.tres"),
30 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/k.tres"),
31 | preload("res://addons/deckbuilder-framework/playing-cards/hearts/a.tres"),
32 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/2.tres"),
33 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/3.tres"),
34 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/4.tres"),
35 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/5.tres"),
36 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/6.tres"),
37 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/7.tres"),
38 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/8.tres"),
39 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/9.tres"),
40 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/10.tres"),
41 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/j.tres"),
42 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/q.tres"),
43 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/k.tres"),
44 | preload("res://addons/deckbuilder-framework/playing-cards/clubs/a.tres"),
45 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/2.tres"),
46 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/3.tres"),
47 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/4.tres"),
48 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/5.tres"),
49 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/6.tres"),
50 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/7.tres"),
51 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/8.tres"),
52 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/9.tres"),
53 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/10.tres"),
54 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/j.tres"),
55 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/q.tres"),
56 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/k.tres"),
57 | preload("res://addons/deckbuilder-framework/playing-cards/diamonds/a.tres")
58 | ]
59 |
60 | # `Button`s
61 | @onready var refresh_button: Button = $Buttons/RefreshButton
62 | @onready var back_button: Button = $Buttons/BackButton
63 |
64 |
65 | # `Deck`s
66 | @onready var draw_pile: Deck = $Decks/DrawPile
67 | @onready var discard: Deck = $Decks/Discard
68 |
69 |
70 | # `BuildDeck`s
71 | @onready var build_deck_1: Deck = $Decks/BuildDeck1
72 | @onready var build_deck_2: Deck = $Decks/BuildDeck2
73 | @onready var build_deck_3: Deck = $Decks/BuildDeck3
74 | @onready var build_deck_4: Deck = $Decks/BuildDeck4
75 |
76 |
77 | # `TableauDeck`s
78 | @onready var tableau_deck_1: Deck = $Decks/TableauDeck1
79 | @onready var tableau_deck_2: Deck = $Decks/TableauDeck2
80 | @onready var tableau_deck_3: Deck = $Decks/TableauDeck3
81 | @onready var tableau_deck_4: Deck = $Decks/TableauDeck4
82 | @onready var tableau_deck_5: Deck = $Decks/TableauDeck5
83 | @onready var tableau_deck_6: Deck = $Decks/TableauDeck6
84 | @onready var tableau_deck_7: Deck = $Decks/TableauDeck7
85 |
86 |
87 | # `Win Screen`
88 | @onready var win_screen: Control = $WinScreen
89 |
90 |
91 | # This contains all cards that are picked up as a group from a tableau deck
92 | # this functionality doesn't come in the card plugin, so we have to manage it custom
93 | # this will contain multuple cards picked of from a tableau deck at one time
94 | var held_card_pile : Array = []
95 |
96 |
97 | # start it up boi!
98 | func _ready() -> void:
99 | _init_and_shuffle()
100 | _deal()
101 | _add_listeners()
102 |
103 |
104 | # create Card scenes from CardData resources and shuffle
105 | func _init_and_shuffle():
106 | for card_data in all_cards:
107 | var card = draw_pile.create_from_card_data(card_data)
108 | card.set_flipped(true)
109 | draw_pile.shuffle()
110 |
111 |
112 | # deal cards to each tableau
113 | func _deal():
114 | for i in range(1):
115 | draw_pile.move_card_to_deck(tableau_deck_1, draw_pile.get_top_card())
116 | tableau_deck_1.get_top_card().set_flipped(false)
117 |
118 | for i in range(2):
119 | draw_pile.move_card_to_deck(tableau_deck_2, draw_pile.get_top_card())
120 | tableau_deck_2.get_top_card().set_flipped(false)
121 |
122 | for i in range(3):
123 | draw_pile.move_card_to_deck(tableau_deck_3, draw_pile.get_top_card())
124 | tableau_deck_3.get_top_card().set_flipped(false)
125 |
126 | for i in range(4):
127 | draw_pile.move_card_to_deck(tableau_deck_4, draw_pile.get_top_card())
128 | tableau_deck_4.get_top_card().set_flipped(false)
129 |
130 | for i in range(5):
131 | draw_pile.move_card_to_deck(tableau_deck_5, draw_pile.get_top_card())
132 | tableau_deck_5.get_top_card().set_flipped(false)
133 |
134 | for i in range(6):
135 | draw_pile.move_card_to_deck(tableau_deck_6, draw_pile.get_top_card())
136 | tableau_deck_6.get_top_card().set_flipped(false)
137 |
138 | for i in range(7):
139 | draw_pile.move_card_to_deck(tableau_deck_7, draw_pile.get_top_card())
140 | tableau_deck_7.get_top_card().set_flipped(false)
141 |
142 |
143 | # add all event listeners
144 | func _add_listeners():
145 |
146 | back_button.connect('pressed', func(): get_tree().change_scene_to_file("res://example.tscn"))
147 |
148 | refresh_button.connect('pressed', _on_refresh_pressed)
149 |
150 | draw_pile.connect('top_card_clicked', _on_draw_pile_clicked)
151 |
152 | discard.connect('card_dropped', _card_dropped_from_discord)
153 |
154 | # these different nodes all use the same connected methods
155 | # so we bind the deck that was dropped so we have access to that in the connected method
156 | tableau_deck_1.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_1))
157 | tableau_deck_2.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_2))
158 | tableau_deck_3.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_3))
159 | tableau_deck_4.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_4))
160 | tableau_deck_5.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_5))
161 | tableau_deck_6.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_6))
162 | tableau_deck_7.connect('card_dropped', _card_dropped_from_tableau_deck.bind(tableau_deck_7))
163 | tableau_deck_1.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_1))
164 | tableau_deck_2.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_2))
165 | tableau_deck_3.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_3))
166 | tableau_deck_4.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_4))
167 | tableau_deck_5.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_5))
168 | tableau_deck_6.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_6))
169 | tableau_deck_7.connect('card_picked_up', _card_picked_up_from_tableau_deck.bind(tableau_deck_7))
170 |
171 |
172 | # hide the clicked button and reset the discard Deck into the draw pile Deck
173 | func _on_refresh_pressed():
174 | refresh_button.hide()
175 | for card in discard.get_child_count():
176 | var top_card = discard.get_top_card()
177 | top_card.set_flipped(true)
178 | discard.move_card_to_deck(draw_pile, top_card)
179 |
180 |
181 | # move the top card from the draw_pile into the discard Deck
182 | # it only does 1 card instead of 3 because it is much easier to win 1 at a time
183 | # after drawing, if the draw pile Deck is empty, show the refresh button
184 | func _on_draw_pile_clicked(_card : PlayingCard):
185 | for i in range(1):
186 | var top_card = draw_pile.get_top_card()
187 | if top_card:
188 | draw_pile.move_card_to_deck(discard, top_card)
189 | top_card.set_flipped(false)
190 | if draw_pile.get_child_count() == 0 and discard.get_child_count() != 0:
191 | refresh_button.show()
192 |
193 | # when a card is dropped from discard there are 2 legal moves:
194 | # 1) it is dropped on a legal tableu deck, so move it there
195 | # 2) it is droppdd on a legal build deck, so move it there
196 | func _card_dropped_from_discord(card : Card, dropped_on_deck : Deck):
197 | if dropped_on_deck is TableauDeck and dropped_on_deck.can_hold_card(card):
198 | discard.move_card_to_deck(dropped_on_deck, card)
199 | if dropped_on_deck is BuildDeck and dropped_on_deck.can_hold_card(card):
200 | dropped_on_deck.play_card(card)
201 | _check_for_win()
202 |
203 |
204 | # when a card is dropped from a tableu deck there are 2 legal moves
205 | # 1) it is dropped on a legal tableau deck, so move all held cards to the new deck and flip the next card
206 | # 2_ it is dropped on a legal build deck, so move the 1 held card to the build deck, flip the next card, and check for a win
207 | func _card_dropped_from_tableau_deck(card : Card, dropped_on_deck : Deck, dropped_from_deck : Deck):
208 | if dropped_on_deck is TableauDeck:
209 | if dropped_from_deck != dropped_on_deck and dropped_on_deck.can_hold_card(card):
210 | for _card in held_card_pile:
211 | dropped_from_deck.move_card_to_deck(dropped_on_deck, _card)
212 | var top_card = dropped_from_deck.get_top_card()
213 | if top_card:
214 | top_card.set_flipped(false)
215 | if dropped_on_deck is BuildDeck and held_card_pile.size() == 1 and dropped_on_deck.can_hold_card(card):
216 | dropped_on_deck.play_card(card)
217 | var top_card = dropped_from_deck.get_top_card()
218 | if top_card:
219 | top_card.set_flipped(false)
220 | _check_for_win()
221 |
222 | # whether a legal move happens or not, if cards were dropped after being held from a tableu deck
223 | # we need to allow them to be autopositioned and empty our held card pile
224 | for c in held_card_pile:
225 | c.z_index = 0
226 | c.set_auto_position_enabled(true)
227 | held_card_pile = []
228 |
229 |
230 | # if all build decks have 13 cards then the player wins! weee
231 | func _check_for_win():
232 | if build_deck_1.get_child_count() == 13 and build_deck_2.get_child_count() == 13 and build_deck_3.get_child_count() == 13 and build_deck_4.get_child_count() == 13:
233 | win_screen.show()
234 |
235 |
236 | # when a card is picked off a tableau deck we want to disable auto position in lieu of custom handling
237 | # so collect the picked up card and all cards below it into the `held_card_pile`
238 | func _card_picked_up_from_tableau_deck(card: Card, from_deck : Deck):
239 | held_card_pile = from_deck.get_children().slice(card.get_index())
240 | for index in held_card_pile.size():
241 | var _card = held_card_pile[index]
242 | _card.z_index = 1 + index
243 | _card.set_auto_position_enabled(false)
244 |
245 |
246 | # if there is a held card pile then we want to manually set their positions since auto position is disabled on them
247 | func _process(_delta: float) -> void:
248 | if held_card_pile.size():
249 | for index in held_card_pile.size():
250 | var card = held_card_pile[index]
251 | var target_pos = get_global_mouse_position() - card.size * 0.5
252 | target_pos.y += card.get_parent().y_spread * index
253 | card.global_position = target_pos
254 |
--------------------------------------------------------------------------------
/solitaire/solitaire.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=7 format=3 uid="uid://bgj8sfo8lnw6v"]
2 |
3 | [ext_resource type="Script" path="res://solitaire/solitaire.gd" id="1_q1vi5"]
4 | [ext_resource type="Texture2D" uid="uid://dpg01wywd5p27" path="res://addons/deckbuilder-framework/playing-cards/assets/misc/card_back.png" id="2_ws7os"]
5 | [ext_resource type="Script" path="res://addons/deckbuilder-framework/deck.gd" id="3_ax0bq"]
6 | [ext_resource type="Script" path="res://solitaire/build_deck.gd" id="4_thfoi"]
7 | [ext_resource type="Script" path="res://solitaire/tableau_deck.gd" id="6_l70yo"]
8 |
9 | [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_k8kfu"]
10 |
11 | [node name="Solitaire" type="Control"]
12 | layout_mode = 3
13 | anchors_preset = 15
14 | anchor_right = 1.0
15 | anchor_bottom = 1.0
16 | offset_right = -1400.0
17 | offset_bottom = -800.0
18 | grow_horizontal = 2
19 | grow_vertical = 2
20 | script = ExtResource("1_q1vi5")
21 |
22 | [node name="Backgrounds" type="Control" parent="."]
23 | modulate = Color(0.151276, 0.151276, 0.151276, 1)
24 | anchors_preset = 0
25 |
26 | [node name="TextureRect" type="TextureRect" parent="Backgrounds"]
27 | layout_mode = 0
28 | offset_left = 288.0
29 | offset_top = 64.0
30 | offset_right = 372.0
31 | offset_bottom = 184.0
32 | texture = ExtResource("2_ws7os")
33 | stretch_mode = 2
34 |
35 | [node name="TextureRect2" type="TextureRect" parent="Backgrounds"]
36 | layout_mode = 0
37 | offset_left = 416.0
38 | offset_top = 64.0
39 | offset_right = 500.0
40 | offset_bottom = 184.0
41 | texture = ExtResource("2_ws7os")
42 | stretch_mode = 2
43 |
44 | [node name="TextureRect3" type="TextureRect" parent="Backgrounds"]
45 | layout_mode = 0
46 | offset_left = 672.0
47 | offset_top = 64.0
48 | offset_right = 756.0
49 | offset_bottom = 184.0
50 | texture = ExtResource("2_ws7os")
51 | stretch_mode = 2
52 |
53 | [node name="TextureRect4" type="TextureRect" parent="Backgrounds"]
54 | layout_mode = 0
55 | offset_left = 800.0
56 | offset_top = 64.0
57 | offset_right = 884.0
58 | offset_bottom = 184.0
59 | texture = ExtResource("2_ws7os")
60 | stretch_mode = 2
61 |
62 | [node name="TextureRect5" type="TextureRect" parent="Backgrounds"]
63 | layout_mode = 0
64 | offset_left = 928.0
65 | offset_top = 64.0
66 | offset_right = 1012.0
67 | offset_bottom = 184.0
68 | texture = ExtResource("2_ws7os")
69 | stretch_mode = 2
70 |
71 | [node name="TextureRect6" type="TextureRect" parent="Backgrounds"]
72 | layout_mode = 0
73 | offset_left = 1056.0
74 | offset_top = 64.0
75 | offset_right = 1140.0
76 | offset_bottom = 184.0
77 | texture = ExtResource("2_ws7os")
78 | stretch_mode = 2
79 |
80 | [node name="TextureRect7" type="TextureRect" parent="Backgrounds"]
81 | layout_mode = 0
82 | offset_left = 288.0
83 | offset_top = 220.0
84 | offset_right = 372.0
85 | offset_bottom = 340.0
86 | texture = ExtResource("2_ws7os")
87 | stretch_mode = 2
88 |
89 | [node name="TextureRect8" type="TextureRect" parent="Backgrounds"]
90 | layout_mode = 0
91 | offset_left = 416.0
92 | offset_top = 220.0
93 | offset_right = 500.0
94 | offset_bottom = 340.0
95 | texture = ExtResource("2_ws7os")
96 | stretch_mode = 2
97 |
98 | [node name="TextureRect9" type="TextureRect" parent="Backgrounds"]
99 | layout_mode = 0
100 | offset_left = 544.0
101 | offset_top = 220.0
102 | offset_right = 628.0
103 | offset_bottom = 340.0
104 | texture = ExtResource("2_ws7os")
105 | stretch_mode = 2
106 |
107 | [node name="TextureRect10" type="TextureRect" parent="Backgrounds"]
108 | layout_mode = 0
109 | offset_left = 672.0
110 | offset_top = 220.0
111 | offset_right = 756.0
112 | offset_bottom = 340.0
113 | texture = ExtResource("2_ws7os")
114 | stretch_mode = 2
115 |
116 | [node name="TextureRect11" type="TextureRect" parent="Backgrounds"]
117 | layout_mode = 0
118 | offset_left = 800.0
119 | offset_top = 220.0
120 | offset_right = 884.0
121 | offset_bottom = 340.0
122 | texture = ExtResource("2_ws7os")
123 | stretch_mode = 2
124 |
125 | [node name="TextureRect12" type="TextureRect" parent="Backgrounds"]
126 | layout_mode = 0
127 | offset_left = 928.0
128 | offset_top = 220.0
129 | offset_right = 1012.0
130 | offset_bottom = 340.0
131 | texture = ExtResource("2_ws7os")
132 | stretch_mode = 2
133 |
134 | [node name="TextureRect13" type="TextureRect" parent="Backgrounds"]
135 | layout_mode = 0
136 | offset_left = 1057.0
137 | offset_top = 220.0
138 | offset_right = 1141.0
139 | offset_bottom = 340.0
140 | texture = ExtResource("2_ws7os")
141 | stretch_mode = 2
142 |
143 | [node name="Decks" type="Control" parent="."]
144 | anchors_preset = 0
145 | offset_right = 40.0
146 | offset_bottom = 40.0
147 |
148 | [node name="DrawPile" type="Control" parent="Decks"]
149 | anchors_preset = 0
150 | offset_left = 288.0
151 | offset_top = 64.0
152 | offset_right = 372.0
153 | offset_bottom = 184.0
154 | script = ExtResource("3_ax0bq")
155 | x_spread = -0.5
156 | y_spread = -1.0
157 |
158 | [node name="Discard" type="Control" parent="Decks"]
159 | anchors_preset = 0
160 | offset_left = 416.0
161 | offset_top = 64.0
162 | offset_right = 500.0
163 | offset_bottom = 184.0
164 | script = ExtResource("3_ax0bq")
165 | x_spread = -0.5
166 | y_spread = -1.0
167 | drag_behavior = 2
168 |
169 | [node name="BuildDeck1" type="Control" parent="Decks"]
170 | anchors_preset = 0
171 | offset_left = 671.0
172 | offset_top = 64.0
173 | offset_right = 756.0
174 | offset_bottom = 184.0
175 | script = ExtResource("4_thfoi")
176 | x_spread = -0.5
177 | y_spread = -1.0
178 |
179 | [node name="BuildDeck2" type="Control" parent="Decks"]
180 | anchors_preset = 0
181 | offset_left = 800.0
182 | offset_top = 64.0
183 | offset_right = 884.0
184 | offset_bottom = 184.0
185 | script = ExtResource("4_thfoi")
186 | x_spread = -0.5
187 | y_spread = -1.0
188 |
189 | [node name="BuildDeck3" type="Control" parent="Decks"]
190 | anchors_preset = 0
191 | offset_left = 928.0
192 | offset_top = 64.0
193 | offset_right = 1012.0
194 | offset_bottom = 184.0
195 | script = ExtResource("4_thfoi")
196 | x_spread = -0.5
197 | y_spread = -1.0
198 |
199 | [node name="BuildDeck4" type="Control" parent="Decks"]
200 | anchors_preset = 0
201 | offset_left = 1056.0
202 | offset_top = 64.0
203 | offset_right = 1140.0
204 | offset_bottom = 184.0
205 | script = ExtResource("4_thfoi")
206 | x_spread = -0.5
207 | y_spread = -1.0
208 |
209 | [node name="TableauDeck1" type="Control" parent="Decks"]
210 | anchors_preset = 0
211 | offset_left = 288.0
212 | offset_top = 220.0
213 | offset_right = 372.0
214 | offset_bottom = 745.0
215 | script = ExtResource("6_l70yo")
216 | y_spread = 30.0
217 | drag_behavior = 3
218 |
219 | [node name="TableauDeck2" type="Control" parent="Decks"]
220 | anchors_preset = 0
221 | offset_left = 416.0
222 | offset_top = 220.0
223 | offset_right = 500.0
224 | offset_bottom = 745.0
225 | script = ExtResource("6_l70yo")
226 | y_spread = 30.0
227 | drag_behavior = 3
228 |
229 | [node name="TableauDeck3" type="Control" parent="Decks"]
230 | anchors_preset = 0
231 | offset_left = 544.0
232 | offset_top = 220.0
233 | offset_right = 628.0
234 | offset_bottom = 745.0
235 | script = ExtResource("6_l70yo")
236 | y_spread = 30.0
237 | drag_behavior = 3
238 |
239 | [node name="TableauDeck4" type="Control" parent="Decks"]
240 | anchors_preset = 0
241 | offset_left = 672.0
242 | offset_top = 220.0
243 | offset_right = 756.0
244 | offset_bottom = 745.0
245 | script = ExtResource("6_l70yo")
246 | y_spread = 30.0
247 | drag_behavior = 3
248 |
249 | [node name="TableauDeck5" type="Control" parent="Decks"]
250 | anchors_preset = 0
251 | offset_left = 800.0
252 | offset_top = 220.0
253 | offset_right = 884.0
254 | offset_bottom = 745.0
255 | script = ExtResource("6_l70yo")
256 | y_spread = 30.0
257 | drag_behavior = 3
258 |
259 | [node name="TableauDeck6" type="Control" parent="Decks"]
260 | anchors_preset = 0
261 | offset_left = 928.0
262 | offset_top = 220.0
263 | offset_right = 1012.0
264 | offset_bottom = 745.0
265 | script = ExtResource("6_l70yo")
266 | y_spread = 30.0
267 | drag_behavior = 3
268 |
269 | [node name="TableauDeck7" type="Control" parent="Decks"]
270 | anchors_preset = 0
271 | offset_left = 1057.0
272 | offset_top = 220.0
273 | offset_right = 1141.0
274 | offset_bottom = 745.0
275 | script = ExtResource("6_l70yo")
276 | y_spread = 30.0
277 | drag_behavior = 3
278 |
279 | [node name="Buttons" type="Control" parent="."]
280 | anchors_preset = 0
281 |
282 | [node name="RefreshButton" type="Button" parent="Buttons"]
283 | visible = false
284 | layout_mode = 0
285 | offset_left = 290.0
286 | offset_top = 66.0
287 | offset_right = 370.0
288 | offset_bottom = 182.0
289 | text = "Refresh"
290 |
291 | [node name="BackButton" type="Button" parent="Buttons"]
292 | layout_mode = 0
293 | offset_top = 768.0
294 | offset_right = 80.0
295 | offset_bottom = 799.0
296 | text = "Back"
297 |
298 | [node name="WinScreen" type="Control" parent="."]
299 | visible = false
300 | anchors_preset = 0
301 | offset_right = 40.0
302 | offset_bottom = 40.0
303 |
304 | [node name="TextureRect" type="TextureRect" parent="WinScreen"]
305 | modulate = Color(0.288167, 0.0201834, 0.119681, 1)
306 | layout_mode = 0
307 | offset_right = 1400.0
308 | offset_bottom = 800.0
309 | texture = SubResource("PlaceholderTexture2D_k8kfu")
310 |
311 | [node name="RichTextLabel" type="RichTextLabel" parent="WinScreen"]
312 | layout_mode = 2
313 | offset_left = 575.0
314 | offset_top = 400.0
315 | offset_right = 824.0
316 | offset_bottom = 424.0
317 | bbcode_enabled = true
318 | text = "[center][wave]You Win!"
319 |
--------------------------------------------------------------------------------
/solitaire/tableau_deck.gd:
--------------------------------------------------------------------------------
1 | class_name TableauDeck extends Deck
2 |
3 | # check if a card can be played on this deck
4 | func can_hold_card(card : PlayingCard):
5 | if get_child_count() == 0:
6 | return card.card_data.value == 13
7 | else:
8 | var top_card = get_top_card()
9 | if top_card.card_data.value == card.card_data.value + 1:
10 | if top_card.card_data.suit == PlayingCardData.SUITS.CLUBS or top_card.card_data.suit == PlayingCardData.SUITS.SPADES:
11 | return card.card_data.suit == PlayingCardData.SUITS.DIAMONDS or card.card_data.suit == PlayingCardData.SUITS.HEARTS
12 | elif top_card.card_data.suit == PlayingCardData.SUITS.DIAMONDS or top_card.card_data.suit == PlayingCardData.SUITS.HEARTS:
13 | return card.card_data.suit == PlayingCardData.SUITS.CLUBS or card.card_data.suit == PlayingCardData.SUITS.SPADES
14 | return false
15 |
16 | # run a custom function to see if a card can be picked up from this deck
17 | # the plugin only supports none/all/top natively but we want to allow any /flipped/ card to be picked up
18 | func custom_can_card_be_dragged(card : Card):
19 | return card.flipped == false
20 |
--------------------------------------------------------------------------------