videoCache add/remove/clear 까지 모든 모드 명령을 mcfunction 에서 직접 실행하지 않고 큐(mq:main video.cmdq)에 문자열로 적재한 뒤, 매 tick videos/drain 이 공용 command_block 으로 하나씩 실행(auto 0→1, 1회 실행 후 off)한다. 데이터팩 로드 시 모드 명령을 파싱하지 않으므로 영상 모드 미설치 상태에서도 데이터팩이 정상 로드/플레이된다. - preload/FIFO 축출 다건도 큐를 tick 당 1개씩 소진해 순서 보장 - cache 캐시 추적/dedup/src 결정(video_N vs 전체 URL)을 macro/cmd 로 통합 - 캐시 관련 파일 정리: add_one/preload_loop/evict_one/clear_run/ macro/add_one/macro/evict_one/resolve_src 제거, fill/drain/drain_off 도입 (videos 15→12 파일, cache/macro 폴더 제거) Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
10 lines
645 B
MCFunction
10 lines
645 B
MCFunction
# namespace 끝에 / 가 붙어 있으면 제거 (config 오타 방어).
|
|
# string 소스 마지막 글자만 떼서 비교 후, 맞으면 마지막 글자를 잘라낸다.
|
|
data modify storage mq:tmp ns_last set string storage mq:main video.namespace -1
|
|
execute if data storage mq:tmp {ns_last:"/"} run data modify storage mq:main video.namespace set string storage mq:main video.namespace 0 -1
|
|
|
|
# 캐시 추적 목록({i:N}), 모드 명령 큐, command_block armed 플래그 초기화.
|
|
data modify storage mq:main video.cached set value []
|
|
data modify storage mq:main video.cmdq set value []
|
|
data modify storage mq:main video.armed set value 0b
|