Skip to content

Integrasi Layar Debug F3

Halaman ini mendokumentasikan bagaimana Spidometer berintegrasi ke dalam pipeline rendering debug F3 melalui DebugScreenEntries dan DebugScreenEntryList.


📊 Kotak Info Integrasi Debug F3

PropertyValue
Speedometer Registry KeyIdentifier.withDefaultNamespace("speedometer")
Native Vanilla KeyIdentifier.withDefaultNamespace("player_speed")
Interface Implementednet.minecraft.client.gui.components.debug.DebugScreenEntry
Mixin Target 1net.minecraft.client.gui.components.debug.DebugScreenEntries
Mixin Target 2net.minecraft.client.gui.components.debug.DebugScreenEntryList
Default Display StateDebugScreenEntryStatus.IN_OVERLAY

🏗 Diagram Arsitektur

+----------------------------------------------------------------+
|                     Minecraft F3 Debug Screen                   |
+----------------------------------------------------------------+
                               |
                   DebugScreenEntries.<clinit>()
                               |
                      DebugScreenEntriesMixin
                               |
        +-----------------------+-----------------------+
        |                                               |
   register()                                      put()
   ID Speedometer                                  ID Kecepatan Pemain
        |                                               |
 DebugEntrySpeedometer                     DebugEntryPlayerSpeedWrapper
   (Baris Terpisah)                          (Baris Tergabung)

⚙️ Alur Kerja Pendaftaran

  1. Injeksi Pemuatan Kelas Statis (DebugScreenEntriesMixin): Selama inisialisasi tail (<clinit>) dari DebugScreenEntries, Speedometer memanggil metode privat register untuk menambahkan speedometer ke registri entri vanilla (ENTRIES_BY_ID).
  2. Inisialisasi Status Default (DebugScreenEntryListMixin): Saat DebugScreenEntryList.rebuildCurrentList() dieksekusi, Speedometer memeriksa apakah speedometer ada di allStatuses. Jika belum ada, otomatis mendaftarkannya sebagai IN_OVERLAY.
  3. Spy Wrapper Replacement: Jika vanilla mendaftarkan player_speed secara native (misal di Minecraft 26.3+), DebugScreenEntriesMixin mengganti objek vanilla dengan DebugEntryPlayerSpeedWrapper kami.

🔗 Halaman Terkait

Official documentation & web portal for Dasik Igaijinn mods.