From bcb5c880b5d8f524de3b8836d79dc484842873ab Mon Sep 17 00:00:00 2001 From: Nordup Date: Wed, 10 Apr 2024 23:42:46 +0400 Subject: [PATCH] featured gates done --- project/scripts/api/featured_gates.gd | 11 +++++++++-- project/scripts/ui/menu/bookmark_container.gd | 11 ++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/project/scripts/api/featured_gates.gd b/project/scripts/api/featured_gates.gd index 68be8ae..dac60b4 100644 --- a/project/scripts/api/featured_gates.gd +++ b/project/scripts/api/featured_gates.gd @@ -15,7 +15,7 @@ func on_bookmarks_ready() -> void: if bookmarks.gates.size() > 0: return await featured_gates_request() - Debug.logclr("Featured gates requested", Color.LIGHT_SEA_GREEN) + Debug.logclr("======== Featured gates ========", Color.LIGHT_SEA_GREEN) var gates = JSON.parse_string(result_str) if gates == null or gates.is_empty(): @@ -23,8 +23,8 @@ func on_bookmarks_ready() -> void: return for gate in gates: - # TODO: download image and add to bookmarks Debug.logr(gate["url"]) + await star_gate(gate) func featured_gates_request() -> void: @@ -35,3 +35,10 @@ func featured_gates_request() -> void: var err = await Backend.request(api.featured_gates, callback) if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send featured gates request", Color.RED) + + +func star_gate(gate_d: Dictionary) -> void: + var image_path = await FileDownloader.download(gate_d["image"]) + var gate = Gate.create(gate_d["url"], gate_d["title"], gate_d["description"], image_path, "", "") + + bookmarks.star(gate) diff --git a/project/scripts/ui/menu/bookmark_container.gd b/project/scripts/ui/menu/bookmark_container.gd index 7a15c8b..eb009d8 100644 --- a/project/scripts/ui/menu/bookmark_container.gd +++ b/project/scripts/ui/menu/bookmark_container.gd @@ -5,7 +5,12 @@ extends GridContainer func _ready() -> void: + bookmarks.on_star.connect(show_bookmark) for gate in bookmarks.gates.values(): - var bookmark: BookmarkUI = bookmark_scene.instantiate() - bookmark.fill(gate) - add_child(bookmark) + show_bookmark(gate) + + +func show_bookmark(gate: Gate) -> void: + var bookmark: BookmarkUI = bookmark_scene.instantiate() + bookmark.fill(gate) + add_child(bookmark)