From 95552f536e43e6fcfc7258413ee74c7a5b908cc3 Mon Sep 17 00:00:00 2001 From: Willy-JL Date: Fri, 20 Jan 2023 03:01:10 +0000 Subject: [PATCH] Fix animation pathing --- .../desktop/animations/animation_storage.c | 26 ++++---- assets/dolphin/external/nsfw/manifest.txt | 64 +++++++++---------- assets/dolphin/external/sfw/manifest.txt | 44 ++++++------- assets/resources/dolphin/nsfw/manifest.txt | 64 +++++++++---------- assets/resources/dolphin/sfw/manifest.txt | 44 ++++++------- scripts/assets.py | 7 +- scripts/flipper/assets/dolphin.py | 40 +++++++----- 7 files changed, 149 insertions(+), 140 deletions(-) diff --git a/applications/services/desktop/animations/animation_storage.c b/applications/services/desktop/animations/animation_storage.c index f0b89e364..22008677f 100644 --- a/applications/services/desktop/animations/animation_storage.c +++ b/applications/services/desktop/animations/animation_storage.c @@ -14,14 +14,16 @@ #include "../../../settings/xtreme_settings/xtreme_settings.h" #include "../../../settings/xtreme_settings/xtreme_assets.h" #define ANIMATION_META_FILE "meta.txt" -#define ANIMATION_DIR EXT_PATH("dolphin") +#define BASE_ANIMATION_DIR EXT_PATH("dolphin") #define TAG "AnimationStorage" /* Unused old code, for safe-keeping #define ANIMATION_MANIFEST_FILE ANIMATION_DIR "/manifest.txt" */ -// 66 Max length = strlen("/ext/dolphin_custom//Anims/manifest.txt") + MAX_PACK_NAME_LEN + 1 (Null terminator) +// 59 Max length = strlen("/ext/dolphin_custom//Anims") + MAX_PACK_NAME_LEN + 1 (Null terminator) +char ANIMATION_DIR[59]; +// 72 Max length = ANIMATION_DIR + strlen("/manifest.txt") char ANIMATION_MANIFEST_FILE[72]; static void animation_storage_free_bubbles(BubbleAnimation* animation); @@ -32,22 +34,22 @@ static BubbleAnimation* animation_storage_load_animation(const char* name); void animation_handler_select_manifest() { XtremeSettings* xtreme_settings = XTREME_SETTINGS(); if (xtreme_settings->asset_pack[0] != '\0') { - snprintf(ANIMATION_MANIFEST_FILE, sizeof(PACKS_DIR), "%s", PACKS_DIR); + snprintf(ANIMATION_DIR, sizeof(PACKS_DIR), "%s", PACKS_DIR); FURI_LOG_I(TAG, "Custom Manifest selected"); - strcat(ANIMATION_MANIFEST_FILE, "/"); - strcat(ANIMATION_MANIFEST_FILE, xtreme_settings->asset_pack); - strcat(ANIMATION_MANIFEST_FILE, "/Anims"); + strcat(ANIMATION_DIR, "/"); + strcat(ANIMATION_DIR, xtreme_settings->asset_pack); + strcat(ANIMATION_DIR, "/Anims"); } else { - snprintf(ANIMATION_MANIFEST_FILE, sizeof(ANIMATION_DIR), "%s", ANIMATION_DIR); + snprintf(ANIMATION_DIR, sizeof(BASE_ANIMATION_DIR), "%s", BASE_ANIMATION_DIR); if(xtreme_settings->sfw_mode) { FURI_LOG_I(TAG, "SFW Manifest selected"); - strcat(ANIMATION_MANIFEST_FILE, "/sfw"); + strcat(ANIMATION_DIR, "/sfw"); } else { FURI_LOG_I(TAG, "NSFW Manifest selected"); - strcat(ANIMATION_MANIFEST_FILE, "/nsfw"); + strcat(ANIMATION_DIR, "/nsfw"); } } - strcat(ANIMATION_MANIFEST_FILE, "/manifest.txt"); + snprintf(ANIMATION_MANIFEST_FILE, sizeof(ANIMATION_MANIFEST_FILE), "%s/manifest.txt", ANIMATION_DIR); } static bool animation_storage_load_single_manifest_info( @@ -326,7 +328,7 @@ static bool animation_storage_load_frames( for(int i = 0; i < icon->frame_count; ++i) { frames_ok = false; - furi_string_printf(filename, ANIMATION_DIR "/%s/frame_%d.bm", name, i); + furi_string_printf(filename, "%s/%s/frame_%d.bm", ANIMATION_DIR, name, i); if(storage_common_stat(storage, furi_string_get_cstr(filename), &file_info) != FSE_OK) break; @@ -478,7 +480,7 @@ static BubbleAnimation* animation_storage_load_animation(const char* name) { if(FSE_OK != storage_sd_status(storage)) break; - furi_string_printf(str, ANIMATION_DIR "/%s/" ANIMATION_META_FILE, name); + furi_string_printf(str, "%s/%s/" ANIMATION_META_FILE, ANIMATION_DIR, name); if(!flipper_format_file_open_existing(ff, furi_string_get_cstr(str))) break; if(!flipper_format_read_header(ff, str, &u32value)) break; if(furi_string_cmp_str(str, "Flipper Animation")) break; diff --git a/assets/dolphin/external/nsfw/manifest.txt b/assets/dolphin/external/nsfw/manifest.txt index c9cba41d4..4635b0744 100644 --- a/assets/dolphin/external/nsfw/manifest.txt +++ b/assets/dolphin/external/nsfw/manifest.txt @@ -1,219 +1,219 @@ Filetype: Flipper Animation Manifest Version: 1 -Name: nsfw/lvl_1 +Name: lvl_1 Min butthurt: 0 Max butthurt: 14 Min level: 1 Max level: 30 Weight: 7 -Name: nsfw/lvl_2 +Name: lvl_2 Min butthurt: 0 Max butthurt: 14 Min level: 2 Max level: 30 Weight: 7 -Name: nsfw/lvl_3 +Name: lvl_3 Min butthurt: 0 Max butthurt: 14 Min level: 3 Max level: 30 Weight: 7 -Name: nsfw/lvl_4 +Name: lvl_4 Min butthurt: 0 Max butthurt: 14 Min level: 4 Max level: 30 Weight: 7 -Name: nsfw/lvl_5 +Name: lvl_5 Min butthurt: 0 Max butthurt: 14 Min level: 5 Max level: 30 Weight: 7 -Name: nsfw/lvl_6 +Name: lvl_6 Min butthurt: 0 Max butthurt: 14 Min level: 6 Max level: 30 Weight: 7 -Name: nsfw/lvl_7 +Name: lvl_7 Min butthurt: 0 Max butthurt: 14 Min level: 7 Max level: 30 Weight: 7 -Name: nsfw/lvl_8 +Name: lvl_8 Min butthurt: 0 Max butthurt: 14 Min level: 8 Max level: 30 Weight: 7 -Name: nsfw/lvl_9 +Name: lvl_9 Min butthurt: 0 Max butthurt: 14 Min level: 9 Max level: 30 Weight: 7 -Name: nsfw/lvl_10 +Name: lvl_10 Min butthurt: 0 Max butthurt: 14 Min level: 10 Max level: 30 Weight: 7 -Name: nsfw/lvl_11 +Name: lvl_11 Min butthurt: 0 Max butthurt: 14 Min level: 11 Max level: 30 Weight: 9 -Name: nsfw/PaxGod_TikTok_Marketing +Name: PaxGod_TikTok_Marketing Min butthurt: 0 Max butthurt: 14 Min level: 11 Max level: 30 Weight: 3 -Name: nsfw/lvl_12 +Name: lvl_12 Min butthurt: 0 Max butthurt: 14 Min level: 12 Max level: 30 Weight: 7 -Name: nsfw/lvl_13 +Name: lvl_13 Min butthurt: 0 Max butthurt: 14 Min level: 13 Max level: 30 Weight: 7 -Name: nsfw/lvl_14 +Name: lvl_14 Min butthurt: 0 Max butthurt: 14 Min level: 14 Max level: 30 Weight: 7 -Name: nsfw/lvl_15 +Name: lvl_15 Min butthurt: 0 Max butthurt: 14 Min level: 15 Max level: 30 Weight: 7 -Name: nsfw/lvl_16 +Name: lvl_16 Min butthurt: 0 Max butthurt: 14 Min level: 16 Max level: 30 Weight: 7 -Name: nsfw/lvl_17 +Name: lvl_17 Min butthurt: 0 Max butthurt: 14 Min level: 17 Max level: 30 Weight: 7 -Name: nsfw/lvl_18 +Name: lvl_18 Min butthurt: 0 Max butthurt: 14 Min level: 18 Max level: 30 Weight: 7 -Name: nsfw/lvl_19 +Name: lvl_19 Min butthurt: 0 Max butthurt: 14 Min level: 19 Max level: 30 Weight: 7 -Name: nsfw/lvl_20 +Name: lvl_20 Min butthurt: 0 Max butthurt: 14 Min level: 20 Max level: 30 Weight: 7 -Name: nsfw/lvl_21 +Name: lvl_21 Min butthurt: 0 Max butthurt: 14 Min level: 21 Max level: 30 Weight: 9 -Name: nsfw/lvl_22 +Name: lvl_22 Min butthurt: 0 Max butthurt: 14 Min level: 22 Max level: 30 Weight: 7 -Name: nsfw/lvl_23 +Name: lvl_23 Min butthurt: 0 Max butthurt: 14 Min level: 23 Max level: 30 Weight: 7 -Name: nsfw/lvl_24 +Name: lvl_24 Min butthurt: 0 Max butthurt: 14 Min level: 24 Max level: 30 Weight: 7 -Name: nsfw/lvl_25 +Name: lvl_25 Min butthurt: 0 Max butthurt: 14 Min level: 25 Max level: 30 Weight: 7 -Name: nsfw/lvl_26 +Name: lvl_26 Min butthurt: 0 Max butthurt: 14 Min level: 26 Max level: 30 Weight: 7 -Name: nsfw/lvl_27 +Name: lvl_27 Min butthurt: 0 Max butthurt: 14 Min level: 27 Max level: 30 Weight: 7 -Name: nsfw/lvl_28 +Name: lvl_28 Min butthurt: 0 Max butthurt: 14 Min level: 28 Max level: 30 Weight: 7 -Name: nsfw/lvl_29 +Name: lvl_29 Min butthurt: 0 Max butthurt: 14 Min level: 29 Max level: 30 Weight: 7 -Name: nsfw/lvl_30 +Name: lvl_30 Min butthurt: 0 Max butthurt: 14 Min level: 30 Max level: 30 -Weight: 9 \ No newline at end of file +Weight: 9 diff --git a/assets/dolphin/external/sfw/manifest.txt b/assets/dolphin/external/sfw/manifest.txt index 070277350..5c71e0801 100644 --- a/assets/dolphin/external/sfw/manifest.txt +++ b/assets/dolphin/external/sfw/manifest.txt @@ -1,149 +1,149 @@ Filetype: Flipper Animation Manifest Version: 1 -Name: sfw/L1_Waves_128x50 +Name: L1_Waves_128x50 Min butthurt: 0 Max butthurt: 5 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Laptop_128x51 +Name: L1_Laptop_128x51 Min butthurt: 0 Max butthurt: 7 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Sleep_128x64 +Name: L1_Sleep_128x64 Min butthurt: 0 Max butthurt: 10 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Recording_128x51 +Name: L1_Recording_128x51 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Furippa1_128x64 +Name: L1_Furippa1_128x64 Min butthurt: 0 Max butthurt: 6 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Happy_holidays_128x64 +Name: L1_Happy_holidays_128x64 Min butthurt: 0 Max butthurt: 14 Min level: 1 Max level: 30 Weight: 4 -Name: sfw/L1_Read_books_128x64 +Name: L1_Read_books_128x64 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Cry_128x64 +Name: L1_Cry_128x64 Min butthurt: 8 Max butthurt: 13 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Boxing_128x64 +Name: L1_Boxing_128x64 Min butthurt: 10 Max butthurt: 13 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Mad_fist_128x64 +Name: L1_Mad_fist_128x64 Min butthurt: 9 Max butthurt: 13 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Mods_128x64 +Name: L1_Mods_128x64 Min butthurt: 0 Max butthurt: 9 Min level: 1 Max level: 30 Weight: 4 -Name: sfw/L1_Painting_128x64 +Name: L1_Painting_128x64 Min butthurt: 0 Max butthurt: 7 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Leaving_sad_128x64 +Name: L1_Leaving_sad_128x64 Min butthurt: 14 Max butthurt: 14 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L2_Wake_up_128x64 +Name: L2_Wake_up_128x64 Min butthurt: 0 Max butthurt: 12 Min level: 1 Max level: 30 Weight: 4 -Name: sfw/L2_Furippa2_128x64 +Name: L2_Furippa2_128x64 Min butthurt: 0 Max butthurt: 6 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L2_Hacking_pc_128x64 +Name: L2_Hacking_pc_128x64 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L2_Soldering_128x64 +Name: L2_Soldering_128x64 Min butthurt: 0 Max butthurt: 10 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L3_Furippa3_128x64 +Name: L3_Furippa3_128x64 Min butthurt: 0 Max butthurt: 6 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L3_Hijack_radio_128x64 +Name: L3_Hijack_radio_128x64 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L3_Lab_research_128x54 +Name: L3_Lab_research_128x54 Min butthurt: 0 Max butthurt: 10 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Sleigh_ride_128x64 +Name: L1_Sleigh_ride_128x64 Min butthurt: 0 Max butthurt: 14 Min level: 1 Max level: 30 -Weight: 4 \ No newline at end of file +Weight: 4 diff --git a/assets/resources/dolphin/nsfw/manifest.txt b/assets/resources/dolphin/nsfw/manifest.txt index c9cba41d4..4635b0744 100644 --- a/assets/resources/dolphin/nsfw/manifest.txt +++ b/assets/resources/dolphin/nsfw/manifest.txt @@ -1,219 +1,219 @@ Filetype: Flipper Animation Manifest Version: 1 -Name: nsfw/lvl_1 +Name: lvl_1 Min butthurt: 0 Max butthurt: 14 Min level: 1 Max level: 30 Weight: 7 -Name: nsfw/lvl_2 +Name: lvl_2 Min butthurt: 0 Max butthurt: 14 Min level: 2 Max level: 30 Weight: 7 -Name: nsfw/lvl_3 +Name: lvl_3 Min butthurt: 0 Max butthurt: 14 Min level: 3 Max level: 30 Weight: 7 -Name: nsfw/lvl_4 +Name: lvl_4 Min butthurt: 0 Max butthurt: 14 Min level: 4 Max level: 30 Weight: 7 -Name: nsfw/lvl_5 +Name: lvl_5 Min butthurt: 0 Max butthurt: 14 Min level: 5 Max level: 30 Weight: 7 -Name: nsfw/lvl_6 +Name: lvl_6 Min butthurt: 0 Max butthurt: 14 Min level: 6 Max level: 30 Weight: 7 -Name: nsfw/lvl_7 +Name: lvl_7 Min butthurt: 0 Max butthurt: 14 Min level: 7 Max level: 30 Weight: 7 -Name: nsfw/lvl_8 +Name: lvl_8 Min butthurt: 0 Max butthurt: 14 Min level: 8 Max level: 30 Weight: 7 -Name: nsfw/lvl_9 +Name: lvl_9 Min butthurt: 0 Max butthurt: 14 Min level: 9 Max level: 30 Weight: 7 -Name: nsfw/lvl_10 +Name: lvl_10 Min butthurt: 0 Max butthurt: 14 Min level: 10 Max level: 30 Weight: 7 -Name: nsfw/lvl_11 +Name: lvl_11 Min butthurt: 0 Max butthurt: 14 Min level: 11 Max level: 30 Weight: 9 -Name: nsfw/PaxGod_TikTok_Marketing +Name: PaxGod_TikTok_Marketing Min butthurt: 0 Max butthurt: 14 Min level: 11 Max level: 30 Weight: 3 -Name: nsfw/lvl_12 +Name: lvl_12 Min butthurt: 0 Max butthurt: 14 Min level: 12 Max level: 30 Weight: 7 -Name: nsfw/lvl_13 +Name: lvl_13 Min butthurt: 0 Max butthurt: 14 Min level: 13 Max level: 30 Weight: 7 -Name: nsfw/lvl_14 +Name: lvl_14 Min butthurt: 0 Max butthurt: 14 Min level: 14 Max level: 30 Weight: 7 -Name: nsfw/lvl_15 +Name: lvl_15 Min butthurt: 0 Max butthurt: 14 Min level: 15 Max level: 30 Weight: 7 -Name: nsfw/lvl_16 +Name: lvl_16 Min butthurt: 0 Max butthurt: 14 Min level: 16 Max level: 30 Weight: 7 -Name: nsfw/lvl_17 +Name: lvl_17 Min butthurt: 0 Max butthurt: 14 Min level: 17 Max level: 30 Weight: 7 -Name: nsfw/lvl_18 +Name: lvl_18 Min butthurt: 0 Max butthurt: 14 Min level: 18 Max level: 30 Weight: 7 -Name: nsfw/lvl_19 +Name: lvl_19 Min butthurt: 0 Max butthurt: 14 Min level: 19 Max level: 30 Weight: 7 -Name: nsfw/lvl_20 +Name: lvl_20 Min butthurt: 0 Max butthurt: 14 Min level: 20 Max level: 30 Weight: 7 -Name: nsfw/lvl_21 +Name: lvl_21 Min butthurt: 0 Max butthurt: 14 Min level: 21 Max level: 30 Weight: 9 -Name: nsfw/lvl_22 +Name: lvl_22 Min butthurt: 0 Max butthurt: 14 Min level: 22 Max level: 30 Weight: 7 -Name: nsfw/lvl_23 +Name: lvl_23 Min butthurt: 0 Max butthurt: 14 Min level: 23 Max level: 30 Weight: 7 -Name: nsfw/lvl_24 +Name: lvl_24 Min butthurt: 0 Max butthurt: 14 Min level: 24 Max level: 30 Weight: 7 -Name: nsfw/lvl_25 +Name: lvl_25 Min butthurt: 0 Max butthurt: 14 Min level: 25 Max level: 30 Weight: 7 -Name: nsfw/lvl_26 +Name: lvl_26 Min butthurt: 0 Max butthurt: 14 Min level: 26 Max level: 30 Weight: 7 -Name: nsfw/lvl_27 +Name: lvl_27 Min butthurt: 0 Max butthurt: 14 Min level: 27 Max level: 30 Weight: 7 -Name: nsfw/lvl_28 +Name: lvl_28 Min butthurt: 0 Max butthurt: 14 Min level: 28 Max level: 30 Weight: 7 -Name: nsfw/lvl_29 +Name: lvl_29 Min butthurt: 0 Max butthurt: 14 Min level: 29 Max level: 30 Weight: 7 -Name: nsfw/lvl_30 +Name: lvl_30 Min butthurt: 0 Max butthurt: 14 Min level: 30 Max level: 30 -Weight: 9 \ No newline at end of file +Weight: 9 diff --git a/assets/resources/dolphin/sfw/manifest.txt b/assets/resources/dolphin/sfw/manifest.txt index 070277350..5c71e0801 100644 --- a/assets/resources/dolphin/sfw/manifest.txt +++ b/assets/resources/dolphin/sfw/manifest.txt @@ -1,149 +1,149 @@ Filetype: Flipper Animation Manifest Version: 1 -Name: sfw/L1_Waves_128x50 +Name: L1_Waves_128x50 Min butthurt: 0 Max butthurt: 5 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Laptop_128x51 +Name: L1_Laptop_128x51 Min butthurt: 0 Max butthurt: 7 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Sleep_128x64 +Name: L1_Sleep_128x64 Min butthurt: 0 Max butthurt: 10 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Recording_128x51 +Name: L1_Recording_128x51 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Furippa1_128x64 +Name: L1_Furippa1_128x64 Min butthurt: 0 Max butthurt: 6 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Happy_holidays_128x64 +Name: L1_Happy_holidays_128x64 Min butthurt: 0 Max butthurt: 14 Min level: 1 Max level: 30 Weight: 4 -Name: sfw/L1_Read_books_128x64 +Name: L1_Read_books_128x64 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Cry_128x64 +Name: L1_Cry_128x64 Min butthurt: 8 Max butthurt: 13 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Boxing_128x64 +Name: L1_Boxing_128x64 Min butthurt: 10 Max butthurt: 13 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Mad_fist_128x64 +Name: L1_Mad_fist_128x64 Min butthurt: 9 Max butthurt: 13 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Mods_128x64 +Name: L1_Mods_128x64 Min butthurt: 0 Max butthurt: 9 Min level: 1 Max level: 30 Weight: 4 -Name: sfw/L1_Painting_128x64 +Name: L1_Painting_128x64 Min butthurt: 0 Max butthurt: 7 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Leaving_sad_128x64 +Name: L1_Leaving_sad_128x64 Min butthurt: 14 Max butthurt: 14 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L2_Wake_up_128x64 +Name: L2_Wake_up_128x64 Min butthurt: 0 Max butthurt: 12 Min level: 1 Max level: 30 Weight: 4 -Name: sfw/L2_Furippa2_128x64 +Name: L2_Furippa2_128x64 Min butthurt: 0 Max butthurt: 6 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L2_Hacking_pc_128x64 +Name: L2_Hacking_pc_128x64 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L2_Soldering_128x64 +Name: L2_Soldering_128x64 Min butthurt: 0 Max butthurt: 10 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L3_Furippa3_128x64 +Name: L3_Furippa3_128x64 Min butthurt: 0 Max butthurt: 6 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L3_Hijack_radio_128x64 +Name: L3_Hijack_radio_128x64 Min butthurt: 0 Max butthurt: 8 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L3_Lab_research_128x54 +Name: L3_Lab_research_128x54 Min butthurt: 0 Max butthurt: 10 Min level: 1 Max level: 30 Weight: 3 -Name: sfw/L1_Sleigh_ride_128x64 +Name: L1_Sleigh_ride_128x64 Min butthurt: 0 Max butthurt: 14 Min level: 1 Max level: 30 -Weight: 4 \ No newline at end of file +Weight: 4 diff --git a/scripts/assets.py b/scripts/assets.py index 930783141..5e7a5ff9c 100755 --- a/scripts/assets.py +++ b/scripts/assets.py @@ -260,6 +260,7 @@ class Main(App): # This will not stay, dont worry! This is temp code until we got time to rewrite this all global valid_dirs # access our global variable for valid_dir in valid_dirs: # We can copy the manifest for all of the valid dirs! + (root_dir / f"assets/resources/dolphin/{valid_dir.name}").mkdir(parents=True, exist_ok=True) shutil.copyfile(valid_dir / "manifest.txt", root_dir / f"assets/resources/dolphin/{valid_dir.name}/manifest.txt") (root_dir / "assets/resources/dolphin/manifest.txt").unlink() @@ -291,10 +292,10 @@ class Main(App): self.logger.info(f"Processing Dolphin sources") dolphin = Dolphin() self.logger.info(f"Loading data") - if not f"dolphin{os.sep}external" in str(self.args.input_directory): # AHEM... oopsie. This script apparently just loads all assets, not only external assets, lol. - dolphin.load([self.args.input_directory]) + if f"dolphin{os.sep}external" in str(self.args.input_directory): # AHEM... oopsie. This script apparently just loads all assets, not only external assets, lol. + dolphin.load(self.args.input_directory, valid_dirs) else: - dolphin.load(valid_dirs) + dolphin.load(self.args.input_directory) self.logger.info(f"Packing") dolphin.pack(self.args.output_directory, self.args.symbol_name) self.logger.info(f"Complete") diff --git a/scripts/flipper/assets/dolphin.py b/scripts/flipper/assets/dolphin.py index e86ff121e..899a8a615 100644 --- a/scripts/flipper/assets/dolphin.py +++ b/scripts/flipper/assets/dolphin.py @@ -3,6 +3,7 @@ import logging import os import sys import shutil +import pathlib from collections import Counter from flipper.utils.fff import * @@ -34,6 +35,7 @@ class DolphinBubbleAnimation: min_level: int, max_level: int, weight: int, + subpath: str = None ): # Manifest self.name = name @@ -42,6 +44,7 @@ class DolphinBubbleAnimation: self.min_level = min_level self.max_level = max_level self.weight = weight + self.subpath = subpath # Meta and data self.meta = {} self.frames = [] @@ -184,7 +187,10 @@ class DolphinBubbleAnimation: bubble["_NextBubbleIndex"] = bubble_index + 1 def save(self, output_directory: str): - animation_directory = os.path.join(output_directory, self.name) + if self.subpath: + animation_directory = os.path.join(output_directory, self.subpath, self.name) + else: + animation_directory = os.path.join(output_directory, self.name) os.makedirs(animation_directory, exist_ok=True) meta_filename = os.path.join(animation_directory, "meta.txt") @@ -257,7 +263,7 @@ class DolphinManifest: self.animations = [] self.logger = logging.getLogger("DolphinManifest") - def load(self, loc: str): + def load(self, loc: str, subpath: str = None): manifest_filename = os.path.join(loc, "manifest.txt") file = FlipperFormatFile() @@ -288,19 +294,11 @@ class DolphinManifest: # Initialize animation animation = DolphinBubbleAnimation( - name, min_butthurt, max_butthurt, min_level, max_level, weight + name, min_butthurt, max_butthurt, min_level, max_level, weight, subpath ) # Load Animation meta and frames - - # handle both slash types bc we can - newname = name.split("\\") - if len(newname) < 2: - newname = name.split("/") - - newname = str(newname[-1]) - - animation.load(os.path.join(loc, newname)) + animation.load(os.path.join(loc, name)) # Add to array self.animations.append(animation) @@ -369,12 +367,20 @@ class Dolphin: self.manifest = DolphinManifest() self.logger = logging.getLogger("Dolphin") - def load(self, valid_dirs: list): - for path in valid_dirs: - assert os.path.isdir(path) + def load(self, input_directory, dirs: list = None): + if dirs: + input = str(pathlib.Path(input_directory).absolute()) + for path in dirs: + path = str(pathlib.Path(path).absolute()) + assert os.path.isdir(path) + # Load Manifest + self.logger.info(f"Loading directory {path}") + self.manifest.load(path, subpath=path.removeprefix(input + os.sep)) + else: + assert os.path.isdir(input_directory) # Load Manifest - self.logger.info(f"Loading directory {path}") - self.manifest.load(path) + self.logger.info(f"Loading directory {input_directory}") + self.manifest.load(input_directory) def pack(self, output_directory: str, symbol_name: str = None): self.manifest.save(output_directory, symbol_name)