├── .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 | --------------------------------------------------------------------------------