F3 디버그 화면 통합
이 페이지에서는 속도계가 DebugScreenEntries 및 DebugScreenEntryList를 통해 F3 디버그 렌더링 파이프라인에 통합되는 방식을 설명합니다.
📊 F3 디버그 통합 정보 상자
| Property | Value |
|---|---|
| Speedometer Registry Key | Identifier.withDefaultNamespace("speedometer") |
| Native Vanilla Key | Identifier.withDefaultNamespace("player_speed") |
| Interface Implemented | net.minecraft.client.gui.components.debug.DebugScreenEntry |
| Mixin Target 1 | net.minecraft.client.gui.components.debug.DebugScreenEntries |
| Mixin Target 2 | net.minecraft.client.gui.components.debug.DebugScreenEntryList |
| Default Display State | DebugScreenEntryStatus.IN_OVERLAY |
🏗 아키텍처 다이어그램
+----------------------------------------------------------------+
| Minecraft F3 Debug Screen |
+----------------------------------------------------------------+
|
DebugScreenEntries.<clinit>()
|
DebugScreenEntriesMixin
|
+-----------------------+-----------------------+
| |
register() put()
Speedometer 식별자 플레이어 속도 식별자
| |
DebugEntrySpeedometer DebugEntryPlayerSpeedWrapper
(단독 줄) (통합 줄)⚙️ 등록 워크플로
- 정적 클래스 로딩 주입 (
DebugScreenEntriesMixin):DebugScreenEntries의 정적 초기화 끝부분(<clinit>)에서 Speedometer는 비공개register메서드를 호출하여speedometer를 바닐라 등록부(ENTRIES_BY_ID)에 추가합니다. - 기본 상태 초기화 (
DebugScreenEntryListMixin):DebugScreenEntryList.rebuildCurrentList()가 실행될 때 Speedometer는allStatuses에speedometer가 있는지 확인하고, 없으면 자동으로IN_OVERLAY로 등록합니다. - Spy Wrapper Replacement: 바닐라가 네이티브로
player_speed를 등록하는 경우(예: Minecraft 26.3+),DebugScreenEntriesMixin은 바닐라 객체를DebugEntryPlayerSpeedWrapper로 교체합니다.
