Files
mc_datapack/temp/README.md
Claude (owner) d8d5e75e7d 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>
2026-05-19 02:53:26 +09:00

112 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 부분 적용 가이드 (→ 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` 정상 진행.