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:
111
temp/README.md
Normal file
111
temp/README.md
Normal 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` 정상 진행.
|
||||
Reference in New Issue
Block a user