datapack: emit volume:1.0 default on every SNBT entry
운영자가 곡별로 /playsound 음량을 빠르게 조정할 수 있도록 launcher 가 생성하는 모든 SNBT 항목에 volume:1.0 기본값을 항상 넣는다. 주석의 예시도 volume:1.0 으로 통일.
This commit is contained in:
@@ -21,14 +21,16 @@ function aliasListSnbt(aliases: string[]): string {
|
||||
return `[${parts.join(',')}]`
|
||||
}
|
||||
|
||||
/** 한 곡(MusicListEntry) → `{title:"...", author:"...", alias:[...], description:"..."}` SNBT. */
|
||||
/** 한 곡(MusicListEntry) → `{title:"...", author:"...", alias:[...], description:"...", volume:1.0}` SNBT. */
|
||||
function entrySnbt(entry: MusicListEntry): string {
|
||||
const title = escapeSnbtString(entry.title ?? '')
|
||||
// launcher 의 artist → 데이터팩 SNBT 의 author. 빈 값은 빈 문자열로 그대로 둔다.
|
||||
const author = escapeSnbtString(entry.artist ?? '')
|
||||
const alias = aliasListSnbt(entry.aliases ?? [])
|
||||
const description = escapeSnbtString(entry.description ?? '')
|
||||
return `{title:"${title}", author:"${author}", alias:${alias}, description:"${description}"}`
|
||||
// launcher 가 생성하는 항목에는 volume 기본값 1.0 을 항상 넣는다.
|
||||
// 운영자는 생성된 mcfunction 에서 곡별로 직접 값을 바꿔 사용한다.
|
||||
return `{title:"${title}", author:"${author}", alias:${alias}, description:"${description}", volume:1.0}`
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,7 +45,7 @@ export function buildSongsMcfunction(list: PackList): string {
|
||||
lines.push('# 선택 — volume (이 곡만의 /playsound 음량. 미지정시 init/config.mcfunction')
|
||||
lines.push('# 의 audio.volume 사용)')
|
||||
lines.push('# 곡 순서가 리소스팩의 track_NN / cover_NN 인덱스와 1:1 매칭된다.')
|
||||
lines.push('# 예) {title:"Quiet Song", author:"...", alias:[...], description:"...", volume:2.0}')
|
||||
lines.push('# 예) {title:"Quiet Song", author:"...", alias:[...], description:"...", volume:1.0}')
|
||||
lines.push('data modify storage mq:main songs set value []')
|
||||
for (const entry of list.music) {
|
||||
lines.push(`data modify storage mq:main songs append value ${entrySnbt(entry)}`)
|
||||
|
||||
Reference in New Issue
Block a user