52fbcd1861fc5037bb618886add29e9c2dce645b
Some checks failed
build / build (push) Has been cancelled
VideoPlayback now allocates a DynamicTexture per active anchor under a unique Identifier (registered on Minecraft.getTextureManager()) and pumps RGBA frames into it via NativeImage.setPixelABGR + DynamicTexture.upload() during the client tick. Until the backend (JavaCV) produces a first frame, the texture shows a dark gray placeholder with a thin border so the anchor screen is visibly present. VideoAnchorRenderer.submit() now uses SubmitNodeCollector.submitCustomGeometry with RenderTypes.entityCutout(textureId), drawing a two-sided width×height quad oriented by Direction.toYRot() + Axis.YP.rotationDegrees. Vertex attributes use the new VertexConsumer fluent API (addVertex(Matrix4f, ...) .setColor.setUv.setOverlay(NO_OVERLAY).setLight.setNormal). JavaCvBackend / WatermediaBackend / WatermediaProbe / VideoBackend are unchanged — JavaCV is referenced entirely via reflection so the mod jar remains loadable when the bytedeco classifier jars aren't on the runtime classpath, in which case the anchor renders its placeholder surface.
video_player (영상재생모드)
마인크래프트(Fabric, MC 1.21.6+) 안에서 임의의 mp4 URL을 블록 표면에 재생하는 모드.
- 모드 ID:
video_player - 한글명: 영상재생모드
- 로더: Fabric (싱글플레이어 / 전용 서버 양쪽 지원)
- 명세: 별도 SPEC 문서 참조
빌드
JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 ./gradlew build
산출물: build/libs/video_player-<version>.jar
현재 진행도
이 저장소는 SPEC §10 마일스톤을 순차적으로 채우는 중입니다.
- M1 — 스캐폴드 (현재): Fabric 모드 골격, 비디오 앵커 블록/엔티티 등록, 비디오 스틱 아이템,
/videoStick명령. - M2 — 정적 렌더
- M3 — JavaCV mp4 재생
- M4 — GUI / 네트워크
- M5 — 좌클릭 삭제 +
/videoPlace,/videoDelete - M6 — 오디오 + 거리감 + Mute(소리 on/off)
- M7 — WaterMedia 백엔드 + 자동 선택
- M8 — Stonecutter 멀티버전