untap/deck_input.gd

53 lines
1008 B
GDScript

extends Node
var _caching = preload("res://caching.gd")
var _decklist
var cards: String
func _init(_cards: String) -> void:
cards = _cards
_decklist = Dictionary()
func _convert_mtgo_to_cache_lookup(decklist: String) -> Dictionary:
var _cards = {}
var lines = decklist.split("\n")
for line in lines:
var words = line.split(" ", false, 1)
if words.size() != 2:
continue
_cards[words[1]] = words[0]
return _cards
func _do_free(cache) -> void:
if !cache.has_emitted_all():
return
cache.queue_free()
func do_decklist_grab(decklist: String) -> void:
var cache = _caching.new()
add_child(cache)
var queries = _convert_mtgo_to_cache_lookup(decklist)
for query in queries:
var entry = cache.get_card_data_from_name(query)
_decklist[entry["id"]] = queries[query]
cache.fetch_done.connect(_do_free.bind(cache))
func _show_decklist() -> void:
for card in _decklist:
print(card + " : " + _decklist[card])
func _ready() -> void:
do_decklist_grab(cards)
_show_decklist()