fixes merge conflicts

This commit is contained in:
Nathan Singer 2025-04-29 07:03:03 -04:00
commit bd5b734d79
6 changed files with 49 additions and 20 deletions

View File

@ -31,7 +31,7 @@ func setup() -> Error:
if !_all_downloads_done(): if !_all_downloads_done():
push_error("Not done downloading Bulk Data.") push_error("Not done downloading Bulk Data.")
return FAILED return FAILED
_fetch_mana_symbols() _fetch_mana_symbols()
_setup_cache_in_mem() _setup_cache_in_mem()
@ -45,7 +45,6 @@ func _init() -> void:
fetch_done.connect(_on_end_emit) fetch_done.connect(_on_end_emit)
fetch_start.connect(_on_start_emit) fetch_start.connect(_on_start_emit)
func _on_start_emit() -> void: func _on_start_emit() -> void:
@ -132,6 +131,7 @@ func _get_card_data_from_bulk(dict_entry: Dictionary) -> Dictionary:
return dict_entry return dict_entry
func _get_mana_img(symbol: String, img_url: String) -> Error: func _get_mana_img(symbol: String, img_url: String) -> Error:
fetch_start.emit() fetch_start.emit()
if FileAccess.file_exists("res://symbol_cache/" + symbol + ".svg"): if FileAccess.file_exists("res://symbol_cache/" + symbol + ".svg"):
@ -152,16 +152,18 @@ func _get_mana_img(symbol: String, img_url: String) -> Error:
push_error(_cache_error("IMG_LOADING") + "Couldn't load the image.") push_error(_cache_error("IMG_LOADING") + "Couldn't load the image.")
return FAILED return FAILED
if img.get_size() == Vector2i(100, 100): if img.get_size() == Vector2i(100, 100):
print("resizing") print("resizing")
img.resize(20, 20, Image.INTERPOLATE_LANCZOS) img.resize(20, 20, Image.INTERPOLATE_LANCZOS)
img.save_png("res://symbol_cache/" + symbol.replace("/", "-").replace("{", "").replace("}", "") + ".png") img.save_png(
"res://symbol_cache/" + symbol.replace("/", "-").replace("{", "").replace("}", "") + ".png"
)
img = null img = null
fetch_done.emit() fetch_done.emit()
return OK return OK
@ -171,32 +173,37 @@ func _fetch_mana_symbols() -> Error:
return OK return OK
else: else:
DirAccess.make_dir_absolute("res://symbol_cache") DirAccess.make_dir_absolute("res://symbol_cache")
var httpr = HTTPRequest.new() var httpr = HTTPRequest.new()
add_child(httpr) add_child(httpr)
var err = httpr.request("https://api.scryfall.com/symbology", _req_headers) var err = httpr.request("https://api.scryfall.com/symbology", _req_headers)
if err != OK: if err != OK:
push_error(_cache_error("GET_REQUEST") + "An error occured in the Scryfall request.") push_error(_cache_error("GET_REQUEST") + "An error occured in the Scryfall request.")
return FAILED return FAILED
var resp = await httpr.request_completed var resp = await httpr.request_completed
var unprocessed_body = resp[3].get_string_from_utf8() var unprocessed_body = resp[3].get_string_from_utf8()
var json_body = JSON.parse_string(unprocessed_body) var json_body = JSON.parse_string(unprocessed_body)
for icon in json_body["data"]: for icon in json_body["data"]:
err = await _get_mana_img(icon["symbol"], icon["svg_uri"]) err = await _get_mana_img(icon["symbol"], icon["svg_uri"])
if err != OK: if err != OK:
push_error("Couldn't fetch mana symbol " + icon["symbol"]) push_error("Couldn't fetch mana symbol " + icon["symbol"])
mana_symbols[icon["symbol"]] = "res://symbol_cache/" + icon["symbol"].replace("/", "-").replace("{", "").replace("}", "") + ".png" mana_symbols[icon["symbol"]] = (
"res://symbol_cache/"
+ icon["symbol"].replace("/", "-").replace("{", "").replace("}", "")
+ ".png"
)
print(icon["symbol"] + " image cached.") print(icon["symbol"] + " image cached.")
var file = FileAccess.open("res://symbol_cache/symbols.json", FileAccess.WRITE) var file = FileAccess.open("res://symbol_cache/symbols.json", FileAccess.WRITE)
file.store_line(JSON.stringify(mana_symbols)) file.store_line(JSON.stringify(mana_symbols))
file.close() file.close()
print("Done caching mana symbols.") print("Done caching mana symbols.")
return OK return OK
func _fetch_card_img(data: Dictionary) -> Error: func _fetch_card_img(data: Dictionary) -> Error:
fetch_start.emit() fetch_start.emit()
if FileAccess.file_exists("user://card_cache/" + data["id"] + "card.png"): if FileAccess.file_exists("user://card_cache/" + data["id"] + "card.png"):

View File

@ -3,4 +3,4 @@ extends Node
@warning_ignore("unused_signal") @warning_ignore("unused_signal")
signal card_on_hover(card_info, card_image) signal card_on_hover(card_info, card_image)
@warning_ignore("unused_signal") @warning_ignore("unused_signal")
signal card_on_unhover() signal card_on_unhover

View File

@ -68,5 +68,5 @@ func _on_mouse_exited() -> void:
Input.set_default_cursor_shape(Input.CURSOR_ARROW) Input.set_default_cursor_shape(Input.CURSOR_ARROW)
$TweenController.scale(1.0) $TweenController.scale(1.0)
EventBus.emit_signal("card_on_unhover") EventBus.emit_signal("card_on_unhover")

View File

@ -37,7 +37,7 @@ func _load_data() -> Error:
if card_json == null: if card_json == null:
push_error("%s\nCard json data is could not be parsed as valid json" % card.error("DATA")) push_error("%s\nCard json data is could not be parsed as valid json" % card.error("DATA"))
return FAILED return FAILED
card.card_info["name"] = card_json["name"] card.card_info["name"] = card_json["name"]
card.card_info["type"] = card_json["type_line"] card.card_info["type"] = card_json["type_line"]
card.card_info["desc"] = card_json["oracle_text"] card.card_info["desc"] = card_json["oracle_text"]
@ -47,7 +47,9 @@ func _load_data() -> Error:
func _load_image() -> Error: func _load_image() -> Error:
var cached_img = FileAccess.get_file_as_bytes("user://card_cache/" + card.card_info["id"] + "/card.png") var cached_img = FileAccess.get_file_as_bytes(
"user://card_cache/" + card.card_info["id"] + "/card.png"
)
if cached_img.is_empty(): if cached_img.is_empty():
push_error("%sCard on-board image was not found in cache" % card.error("CACHE")) push_error("%sCard on-board image was not found in cache" % card.error("CACHE"))
@ -59,9 +61,9 @@ func _load_image() -> Error:
if image_status != OK: if image_status != OK:
push_error("%sCard on-board image failed to load correctly" % card.error("IMAGE")) push_error("%sCard on-board image failed to load correctly" % card.error("IMAGE"))
return FAILED return FAILED
card.cached_image = cache_image card.cached_image = cache_image
var image = Image.new() var image = Image.new()
image_status = image.load_png_from_buffer(cached_img) image_status = image.load_png_from_buffer(cached_img)
@ -78,5 +80,4 @@ func _load_image() -> Error:
var card_sprite = card.get_node("Sprite2D") var card_sprite = card.get_node("Sprite2D")
card_sprite.texture = image_texture card_sprite.texture = image_texture
return OK return OK

View File

@ -1,14 +1,17 @@
extends TextureRect extends TextureRect
func _set_tip_image(_card_info: Dictionary, card_image: Image) -> void: func _set_tip_image(_card_info: Dictionary, card_image: Image) -> void:
card_image.resize(int(size.x / 1.75), int(size.y), Image.INTERPOLATE_LANCZOS) card_image.resize(int(size.x / 1.75), int(size.y), Image.INTERPOLATE_LANCZOS)
var tex = ImageTexture.new() var tex = ImageTexture.new()
tex.set_image(card_image) tex.set_image(card_image)
texture = tex texture = tex
func _clear_tip_image() -> void: func _clear_tip_image() -> void:
texture = null texture = null
func _ready() -> void: func _ready() -> void:
EventBus.connect("card_on_hover", _set_tip_image) EventBus.connect("card_on_hover", _set_tip_image)
EventBus.connect("card_on_unhover", _clear_tip_image) EventBus.connect("card_on_unhover", _clear_tip_image)

View File

@ -11,6 +11,7 @@ func _convert_text_to_symbol(_text: String):
last_idx = _text.find(symbol, last_idx) + symbol.length() last_idx = _text.find(symbol, last_idx) + symbol.length()
return _text return _text
func _set_tip_text(card_info: Dictionary, _card_image: Image) -> void: func _set_tip_text(card_info: Dictionary, _card_image: Image) -> void:
# TODO: add more card formatting, check all of the logos, very niche icons will be affected i believe since they're # TODO: add more card formatting, check all of the logos, very niche icons will be affected i believe since they're
# different sizes # different sizes
@ -18,13 +19,30 @@ func _set_tip_text(card_info: Dictionary, _card_image: Image) -> void:
text = "[b]" + card_info["name"] + "[/b]\t" text = "[b]" + card_info["name"] + "[/b]\t"
text += _convert_text_to_symbol(card_info["cost"]) + "\n" text += _convert_text_to_symbol(card_info["cost"]) + "\n"
text += "[i]" + card_info["type"] + "[/i]\n" text += "[i]" + card_info["type"] + "[/i]\n"
<<<<<<< HEAD
text += _convert_text_to_symbol(card_info["desc"]) text += _convert_text_to_symbol(card_info["desc"])
=======
var oracle_text = card_info["desc"]
var last_idx = 0
for symbol in mana_symbols:
last_idx = 0
while oracle_text.find(symbol, last_idx) != -1:
oracle_text = oracle_text.replace(
symbol, '[img width="16" height="16"]' + mana_symbols[symbol] + "[/img]"
)
last_idx = oracle_text.find(symbol, last_idx) + symbol.length()
text += oracle_text
>>>>>>> 76a23aab5c62c7ff138d393c5f5fedd6cd6c7a46
func _clear_tip_text() -> void: func _clear_tip_text() -> void:
text = "" text = ""
func _ready() -> void: func _ready() -> void:
if !FileAccess.file_exists("res://symbol_cache/symbols.json"): if !FileAccess.file_exists("res://symbol_cache/symbols.json"):
push_error("Symbols haven't been cached yet!") push_error("Symbols haven't been cached yet!")
@ -32,8 +50,8 @@ func _ready() -> void:
var file = FileAccess.open("res://symbol_cache/symbols.json", FileAccess.READ) var file = FileAccess.open("res://symbol_cache/symbols.json", FileAccess.READ)
mana_symbols = JSON.parse_string(file.get_as_text()) mana_symbols = JSON.parse_string(file.get_as_text())
file.close() file.close()
set_use_bbcode(true) set_use_bbcode(true)
EventBus.connect("card_on_hover", _set_tip_text) EventBus.connect("card_on_hover", _set_tip_text)
EventBus.connect("card_on_unhover", _clear_tip_text) EventBus.connect("card_on_unhover", _clear_tip_text)