Fix animation pathing

This commit is contained in:
Willy-JL
2023-01-20 03:01:10 +00:00
parent 2bdb437446
commit 95552f536e
7 changed files with 149 additions and 140 deletions

View File

@@ -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;

View File

@@ -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
Weight: 9

View File

@@ -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
Weight: 4

View File

@@ -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
Weight: 9

View File

@@ -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
Weight: 4

View File

@@ -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")

View File

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