From 1fd7b61ab1ccc55f4bd6d80db3f0ab39c11fe3de Mon Sep 17 00:00:00 2001 From: Haoyu Xu Date: Sun, 23 Feb 2025 22:18:32 +0800 Subject: [PATCH] fix: fixed background and music order in project.json --- packages/background/index.js | 11 ++++++++++- packages/project-json/index.js | 15 ++++++++++++++- packages/project-json/runner.js | 6 ++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/packages/background/index.js b/packages/background/index.js index 6f0d95d..2f619ff 100644 --- a/packages/background/index.js +++ b/packages/background/index.js @@ -16,7 +16,16 @@ const DEFAULT_BACKGROUND_FILE = path.join( ) const getFiles = () => { - return file.readdirSync(DIST_DIR) + const ret = file.readdirSync(DIST_DIR) + ret.unshift( + ret.splice( + ret.findIndex( + (e) => e === config.module.background.operator_bg_png + ), + 1 + )[0] + ) + return ret } export let files = getFiles() diff --git a/packages/project-json/index.js b/packages/project-json/index.js index 7d3eb38..a6be136 100644 --- a/packages/project-json/index.js +++ b/packages/project-json/index.js @@ -10,15 +10,27 @@ import { getLangs } from '@aklive2d/charword-table' const DIST_DIR = path.join(import.meta.dirname, config.dir_name.dist) export const build = (namesToBuild) => { + const err = [] const names = !namesToBuild.length ? Object.keys(operators) : namesToBuild console.log('Generating assets for', names.length, 'operators') + const musicMapping = [] + // sort music mapping based on background file order + for (const item of backgrounds) { + if (musics.musicFileMapping[item]) { + musicMapping.push(item) + } else { + err.push( + `Music folder doesn't contain music for ${item} background.` + ) + } + } for (const name of names) { const { voiceLangs, subtitleLangs } = getLangs(name) load(name, { backgrounds, voiceLangs, subtitleLangs, - music: Object.keys(musics.musicFileMapping), + music: musicMapping, }) file.symlink( path.join( @@ -28,6 +40,7 @@ export const build = (namesToBuild) => { path.join(getDistDir(name), config.module.project_json.preview_jpg) ) } + return err } const getDistDir = (name) => { diff --git a/packages/project-json/runner.js b/packages/project-json/runner.js index 795933f..6a21bdd 100644 --- a/packages/project-json/runner.js +++ b/packages/project-json/runner.js @@ -1,7 +1,8 @@ -import { envParser } from '@aklive2d/libs' +import { envParser, error } from '@aklive2d/libs' import { build } from './index.js' async function main() { + let err = [] const { mode, name } = envParser.parse({ mode: { type: 'string', @@ -16,11 +17,12 @@ async function main() { }) switch (mode) { case 'build': - build(name) + err = build(name) break default: throw new Error(`Unknown mode: ${mode}`) } + error.handle(err) } main()