extends Node2D

var _card_class = preload("res://card.gd")

var lib_cards
var num_cards

func _load_card_callback(card) -> void:
	card.load_card()

func _init(card_ids: Array) -> void:
	lib_cards = Array()
	var temp_card
	for id in card_ids:
		temp_card = _card_class.new(id)
		temp_card.cache_done.connect(_load_card_callback.bind(temp_card))
		lib_cards.push_back(temp_card)
		num_cards += 1
	
func add_cards(cards: Array, top: bool) -> void:
	for card in cards:
		add_card(card, top)

func add_card(card, top: bool) -> void:
	if top:
		lib_cards.push_front(card)
	else:
		lib_cards.push_back(card)

func shuffle() -> void:
	lib_cards.shuffle()

func draw_cards(num) -> Array:
	var ret = Array()
	for i in num:
			ret.push_back(lib_cards.pop_front())
	return ret