music_quiz: 버튼 머리 hitbox 정확한 면 정합 + 라벨 text_display 자동 부착
오프셋 부호 정정 (v1.0.16 까지 모든 버전이 잘못된 convention 사용): stone_button[face=wall, facing=X] AABB 는 facing X 쪽 face 에 붙어 안쪽 1/8 만 채움. 따라서 머리 hitbox center 는: south z = 0.0625 (이전 -0.0625) north z = 0.9375 (이전 1.0625) east x = 0.0625 (이전 -0.0625) west x = 0.9375 (이전 1.0625) 이전 부호는 머리 face 의 normal 방향 쪽으로 머리가 "튀어나온다" 라 가정했는데 실제로는 face 의 안쪽 1/8 로 들어가는 구조였음. 그 결과 v1.0.16 의 width=0.125 interaction 은 머리와 겹치지 않고 옆에 떠 있어 (touch only at edge) 클릭이 안 됨. 라벨 text_display 추가 (사용자 요청): - button_defs 항목에 optional label, label_color, label_font, label_scale 추가. 색 기본 black, 폰트 기본 minecraft:default, 크기 기본 1.0. - handler 가 btn_prep 로 기본값 채운 뒤 btn 호출 — 매크로 인자 미존재 에러 회피. - btn 안에서 facing 별 위치/yaw 로 text_display 1개 summon. 같은 벽 (button 머리 반대편 블록) 의 visible 면에 ~0.01 띄워 부착, y-1. - background:0 (투명) 으로 벽에 직접 새긴 느낌. - label 이 빈 문자열이면 summon 스킵. commands/stop 에 stale text_display 정리도 추가 — 옛 정의 이름으로 남은 라벨이 reload 후에도 지워지지 않는 문제 방지.
This commit is contained in:
@@ -66,5 +66,11 @@ data modify storage mq:main answer set value {title:"음악퀴즈", alias:[]}
|
||||
# 이전 버전이 남긴 legacy marker 정리 (현재는 marker 사용 안 함)
|
||||
kill @e[type=minecraft:marker,tag=mq]
|
||||
|
||||
# 이전 버전이 남긴 잔존 text_display 정리.
|
||||
# 현재 버튼은 -1 init 단계에서 같은 tag interaction 만 kill 하므로 (n 태그
|
||||
# 가 일치할 때만), 옛 버튼 정의에 있던 이름의 text_display 가 남으면 안
|
||||
# 지워짐. 여기서 mq 태그 전체를 한 번에 정리해 stale 제거.
|
||||
kill @e[type=minecraft:text_display,tag=mq]
|
||||
|
||||
function mq:quiz/stop_sound
|
||||
function mq:images/clear
|
||||
|
||||
Reference in New Issue
Block a user