Files
mc_datapack/temp/README.md
Claude (owner) da075b60b8 music_quiz: 버튼 동시 눌림 방지 + text_display 텍스트 컴포넌트 형식 수정
(a) interaction 박스가 stone_button hitbox 와 겹쳐 있어서 한 번 클릭에
    interaction 도 발화하고 stone_button 도 vanilla 클릭으로 인식되어
    powered=true 애니메이션이 같이 일어나던 문제. interaction 박스를 버튼
    면 바깥쪽으로 한 두께(0.125) 만큼 빼서 ray 가 stone_button 에 닿기
    전에 interaction 에서 멈추도록.
    south z: 0.0625 → -0.0625, north z: 0.9375 → 1.0625
    east  x: 0.0625 → -0.0625, west  x: 0.9375 → 1.0625

(b) MC 1.20.5+ 부터 text_display.text 는 String 이 아닌 직접 TextComponent
    compound. 이전에 String 안에 JSON 을 넣어서 그 JSON 자체가 텍스트로
    렌더링되던 문제 (`{"text":"게임시작",...}` 가 그대로 보임). compound
    형태 `text:{text:"...",color:"...",font:"..."}` 로 변경.

temp/ 부분 적용 패키지의 btn.mcfunction 과 README 도 동기화.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 23:50:04 +09:00

60 lines
2.3 KiB
Markdown

# v1.0.20 → v1.0.21 부분 적용 가이드
전체 datapack 을 교체하지 않고, 이 폴더의 파일만 덮어쓰면 v1.0.21 과 동일한 상태가 됩니다.
## 무엇이 바뀌었나
### 1. `repeat/buttons/btn.mcfunction` — 버튼이 같이 눌러지던 문제 + 라벨이 JSON 코드로 나오던 문제
**(a) 클릭 시 stone_button 도 같이 눌러짐**
interaction 박스가 stone_button 의 hitbox 와 정확히 겹쳐 있어서, 한 번
클릭에 interaction 도 발화하고 stone_button 도 vanilla 클릭으로 인식해
`powered=true` 애니메이션이 같이 일어났습니다. interaction 박스를 버튼
면 바깥쪽으로 한 두께(0.125) 만큼 빼서, 플레이어 ray 가 stone_button 에
닿기 전에 interaction 에서 멈추도록 했습니다.
- south : 깊이 z 중심 0.0625 → -0.0625
- north : 깊이 z 중심 0.9375 → 1.0625
- east : 깊이 x 중심 0.0625 → -0.0625
- west : 깊이 x 중심 0.9375 → 1.0625
**(b) 라벨이 `{"text":"게임시작",...}` JSON 텍스트 그대로 보임**
MC 1.20.5+ 부터 text_display 의 `text` 필드는 String 이 아니라 직접
TextComponent compound 로 저장됩니다. 이전에는 String 안에 JSON 을 넣어서
(`text:'{...}'`) 그 JSON 자체가 텍스트로 렌더링되었습니다. compound 형태
(`text:{text:"...",color:"...",font:"..."}`) 로 변경.
### 2. `repeat/buttons/btn_prep.mcfunction`
v1.0.20 에서 이미 수정됨 (defaults + merge 방식). 변경 없음 — 다만
v1.0.19 이하에서 점프하는 경우 같이 덮어써야 합니다.
## 적용 방법
서버의 datapack 폴더 (예: `world/datapacks/music_quiz/`) 기준으로 두 파일을
**반드시 덮어쓰세요**.
```
temp/data/mq/function/repeat/buttons/btn.mcfunction
-> <datapack>/data/mq/function/repeat/buttons/btn.mcfunction (덮어쓰기)
temp/data/mq/function/repeat/buttons/btn_prep.mcfunction
-> <datapack>/data/mq/function/repeat/buttons/btn_prep.mcfunction (덮어쓰기)
```
복사 후 게임 안에서:
```
/reload
```
## 확인
- 버튼을 클릭해도 stone_button 의 `powered=true` 눌림 애니메이션이
발생하지 않아야 합니다 (interaction 만 발화).
- 버튼 아래 라벨이 `게임시작` / `정지` / `소리 테스트` 등으로 정상 표시
(JSON 텍스트 노출 없음).
- 콘솔에 파싱 에러 없음.