music_quiz: interaction 엔티티 소환을 데이터팩 내부로 흡수
월드 cmd block 의존 (redstone_block/red_wool 펄스) 을 제거하고 btn.mcfunction 이 직접 summon 하도록 변경. - buttons=-1 초기화 단계에서 기존 mq/<버튼명> interaction 을 모두 kill 후 정확히 1개를 (x+0.5, y, z+0.5) 에 1f×1f 로 재소환. /reload 마다 dup 누적 없이 "버튼당 1개, 올바른 좌표" 로 수렴. - /reload → load → commands/stop 이 buttons 점수를 -1 로 재설정 → 다음 tick 에 ensure 로직 실행. /kill @e 후에도 /reload 한 번으로 복구. - stone_button 직접 감지 fallback 및 잉여 state machine (1→2→0) 제거. 클릭 경로는 interaction 단일화 → trigger 투표 흐름 보존. - README 의 버튼 본체 설명을 새 구조로 갱신. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
13
README.md
13
README.md
@@ -77,8 +77,17 @@
|
||||
|
||||
- `start` / `stop` / `skip` / `hint` / `replay` / `test`
|
||||
|
||||
버튼 본체는 `interaction` 엔티티 + `redstone_block`-`red_wool` 토글
|
||||
패턴으로 디바운스를 처리한다.
|
||||
버튼 본체는 보이는 `stone_button` 블록 + 그 좌표에 덮인 `interaction`
|
||||
엔티티로 구성된다. 클릭 처리는 항상 `interaction` 경로로 흐르므로
|
||||
`on target as @s` 로 누른 플레이어가 식별되고, 다수결(`trigger $(n)`)
|
||||
투표가 성립한다.
|
||||
|
||||
`interaction` 은 데이터팩이 직접 소환·관리한다 — `buttons` 점수가
|
||||
`-1` (초기화) 일 때마다 같은 태그의 기존 entity 를 정리하고 정확히
|
||||
1개를 (재)소환한다. `/reload` 가 `commands/stop` 을 호출해 `buttons`
|
||||
점수를 `-1` 로 재설정하므로, 리로드 시 자동 보장된다. `/kill @e` 로
|
||||
지워졌어도 다음 `/reload` 한 번으로 복구. 월드 회로(커맨드블럭) 의존은
|
||||
없다.
|
||||
|
||||
### 파일 구조
|
||||
|
||||
|
||||
Reference in New Issue
Block a user