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()