v1.0.26: 삭제됐던 docs/temp 복구 + README 사실 정정

리뷰어 지적 후속:
- docs/mc_video_player_mod_integration.md 복구 (f0a2e4f 에서 추출).
  pull 시점에 main 에 없어서 같이 사라졌던 파일.
- temp/ 부분 적용 패키지 v1.0.26 기준으로 복구. 좌표 보존을 위해
  init/*.mcfunction 은 일부러 제외, framework 파일만 포함:
  - commands/start.mcfunction, load.mcfunction (모드 게이트 + objective)
  - repeat/buttons/{btn,btn_prep,handler}.mcfunction
  - repeat/timer.mcfunction + repeat/timers/{init2,init6,init10}.mcfunction
- temp/README.md 에 적용 방법 + 라벨 추가 안내 명시.
- README.md 사실 정정:
  - 음원 채널 "기본 weather" → 실제 config.mcfunction 은 player
    (UI 비프만 weather). source 가 무엇이 무엇인지 명시.
  - 스토리지 섹션의 marker 항목 제거 (현재 config 에 marker 정의 없음,
    legacy kill 한 줄만 잔존). mq:input 큐 추가, mq:tmp 페이로드 갱신.
  - init/config.mcfunction 설명 / 좌표 의존성 섹션에서 marker 제거.

데이터팩 코드 변경 없음 — v1.0.25 = v1.0.26 동작 동일.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Claude (owner)
2026-05-19 02:53:26 +09:00
parent 6956c60461
commit d8d5e75e7d
12 changed files with 609 additions and 7 deletions

111
temp/README.md Normal file
View File

@@ -0,0 +1,111 @@
# 부분 적용 가이드 (→ v1.0.26)
전체 datapack zip 을 새로 풀지 않고, 이 폴더의 파일만 같은 경로에
덮어쓰면 v1.0.26 와 동일한 동작이 됩니다. 본인 월드 좌표·곡 목록 등이
들어 있는 `init/*.mcfunction` 은 일부러 포함하지 않았습니다 — 덮어쓰면
좌표가 날아가니까요.
## v1.0.26 = v1.0.25 + 문서 정리
v1.0.26 자체에는 데이터팩 동작 변경이 없습니다. 변경 사항:
- 삭제됐던 `docs/mc_video_player_mod_integration.md` 복구.
- 루트 `README.md` 의 오류 정정:
- 음원 채널 `weather` → 실제는 `player` (UI 비프만 `weather`) 로 정정.
- 폐기된 `marker` 스토리지/엔티티 설명을 “legacy 정리용” 으로 정리.
- `temp/` 부분 적용 패키지 v1.0.26 기준으로 복구 (이 폴더).
v1.0.25 의 데이터팩 코드를 이미 쓰고 있다면 mods · 데이터팩 변경 없이
끝납니다. **이 폴더를 적용해야 하는 건 v1.0.25 이전 버전에서 올라오는
경우** 입니다.
## 같이 들어 있는 누적 fix (v1.0.19 ~ v1.0.25)
### 버튼 인프라 (`repeat/buttons/`)
- `btn.mcfunction` / `btn_prep.mcfunction` / `handler.mcfunction`
- v1.0.20: `positioned $(x).0 $(y).0 $(z).0` (정수 vec3 의 자동 +0.5 보정
회피), `btn_prep``merge from` defaults 패턴 (`execute unless data
storage ...` 파서 거부 회피).
- v1.0.21: interaction 3 타일 분할 (`width × width` 정사각형 강제 회피),
`text_display` 도입, text component 직접 표기 (1.20.5+ JSON string
렌더 회피).
- v1.0.24: interaction 깊이 부호 정정 (벽 안 → 플레이어 쪽), `text_display`
Y 위치 보정, 라벨 bold.
- v1.0.25: hitbox 미세조정 (가운데 타일 폭 0.13, height 0.26, 깊이
0.07/0.93, text_display Y `~-0.5`), 셀렉터 정렬 통일.
### 모드 게이트 (`commands/start.mcfunction` + `load.mcfunction`)
- v1.0.23 / v1.0.25: `#server mq_chat_mod` 점수로 `mc_chat_answer_mod`
설치 검증, `#server mq_video_mod` + `<player> mq_video_mod` 점수로
`mc_video_player_mod` 서버/클라 설치 검증. 미설치 시 사유와 함께 차단.
- `load.mcfunction` 이 objective 생성 + `#server` 0 materialize.
### 타이머 분할 (`repeat/timer.mcfunction` + `repeat/timers/`)
- v1.0.25: 큰 `timer.mcfunction` 을 init 단계별 (`init2` 카운트다운,
`init6` 다음 곡, `init10` 엔딩) 서브함수로 분할. `timer.mcfunction`
init 게이팅만 하고 각 서브를 호출.
## 적용 방법
### 1. 모드 jar 확인 (이미 설치돼 있으면 skip)
- `mc_chat_answer_mod` v1.3.7+ : 서버 mods 폴더.
https://git.tkrmagid.kr/tkrmagid/mc_chat_answer_mod/releases/tag/v1.3.7
- `mc_video_player_mod` : 서버 mods + 클라이언트 mods 양쪽 설치 필요.
### 2. 데이터팩 파일 덮어쓰기
서버의 datapack 폴더 (예: `world/datapacks/music_quiz/`) 기준으로 이 폴더
아래 파일을 **같은 경로에 덮어쓰세요**.
```
temp/data/mq/function/commands/start.mcfunction
-> <datapack>/data/mq/function/commands/start.mcfunction
temp/data/mq/function/load.mcfunction
-> <datapack>/data/mq/function/load.mcfunction
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
temp/data/mq/function/repeat/buttons/handler.mcfunction
-> <datapack>/data/mq/function/repeat/buttons/handler.mcfunction
temp/data/mq/function/repeat/timer.mcfunction
-> <datapack>/data/mq/function/repeat/timer.mcfunction
temp/data/mq/function/repeat/timers/init2.mcfunction
-> <datapack>/data/mq/function/repeat/timers/init2.mcfunction
temp/data/mq/function/repeat/timers/init6.mcfunction
-> <datapack>/data/mq/function/repeat/timers/init6.mcfunction
temp/data/mq/function/repeat/timers/init10.mcfunction
-> <datapack>/data/mq/function/repeat/timers/init10.mcfunction
```
`repeat/timers/` 폴더는 없을 수도 있습니다 — 그 경우 새로 생성하고 안에
파일 3 개를 넣으세요.
### 3. (옵션) 버튼에 라벨 표시하고 싶으면 `init/buttons.mcfunction` 편집
좌표를 건들지 않기 위해 `init/buttons.mcfunction` 은 포함하지 않았습니다.
직접 편집해서 각 `button_defs` 항목에 `label` 필드를 추가하면 됩니다.
옵션 필드는 `label`, `label_color` (기본 `black`), `label_font` (기본
`minecraft:default`), `label_scale` (기본 `"1.0"`).
```
data modify storage mq:main button_defs append value {n:"start", x:..., y:..., z:..., f:"south", c:"function mq:commands/start with storage mq:main", label:"게임시작"}
```
### 4. /reload
```
/reload
```
## 확인
- 콘솔에 `btn_prep` / `btn` 파싱 에러 없음.
- 버튼 클릭 시 stone_button powered 애니메이션 발생하지 않음
(interaction 박스가 한 두께 바깥에서 ray 를 가로채므로).
- 라벨이 버튼 바로 아래 벽면에 굵게 표시.
- 채팅정답 / 영상재생 모드 미설치 시 `/start` 가 사유 메시지와 함께 차단.
- 모드 둘 다 정상 설치되어 있으면 `/start` 정상 진행.