UNPKG

@webgal-tools/voice

Version:
36 lines 1.57 kB
import { parseSceneScript, applySceneScript } from '@webgal-tools/parser'; export class WebGALScriptCompiler { static parseScript(filePath, configuredCharacters) { const parsedResult = parseSceneScript(filePath, configuredCharacters); return parsedResult.dialogues.map(d => ({ character: d.character, text: d.text, audioFile: d.params.find(p => p.key.endsWith('.wav'))?.key, volume: d.params.find(p => p.key === 'volume')?.value, lineNumber: d.lineNumber, originalLine: d.originalLine, id: d.id, statementId: d.statementId, otherArgs: d.params.filter(p => p.key !== 'volume' && !p.key.endsWith('.wav')).map(p => p.key + (p.value ? '=' + p.value : '')) })); } static rebuildScript(filePath, newDialogues) { return applySceneScript(filePath, newDialogues.map(d => ({ character: d.character, text: d.text, params: [ ...(d.audioFile ? [{ key: d.audioFile, value: '' }] : []), ...(d.volume ? [{ key: 'volume', value: d.volume }] : []), ...((d.otherArgs || []).map(arg => { const [key, value] = arg.includes('=') ? arg.split('=') : [arg, '']; return { key, value }; })) ], lineNumber: d.lineNumber, originalLine: d.originalLine, id: d.id, statementId: d.statementId }))); } } //# sourceMappingURL=compiler.js.map