Skip to content

✨ Tarikan Orb Pengalaman (MC 26.1.2)

📌 Pernyataan Sumber Kode Repositori: Dokumentasi dalam Wiki ini mencerminkan status kode sumber saat ini di repositori, yang mungkin mencakup komit terbaru yang belum dirilis atau fitur dalam pengembangan sebelum rilis publik di CurseForge dan Modrinth.

Kotak Info FiturParameter Teknis
Kelas Entitas Targetnet.minecraft.world.entity.ExperienceOrb
Kelas Pengelolanet.instantgratification.magnet.MagnetManager
GameRule Pengaktifig:magnet_affects_xp (Standar: true)
Kueri Pemindaianplayer.level().getEntitiesOfClass(ExperienceOrb.class, area, Entity::isAlive)
Tipe PartikelParticleTypes.ELECTRIC_SPARK
Batas Sumber Partikelig:magnet_max_particle_sources (Standar: 5)

📖 Mekanisme Vakum Pengalaman

Di bawah filosofi Instant Gratification, membiarkan orb pengalaman tertinggal berlawanan dengan ritme permainan yang mulus. Dalam Minecraft 26.1.2, entitas ExperienceOrb ditarik dengan fisika kecepatan dan pergeseran fase yang identik dengan drop item.

+------------------+    getEntitiesOfClass    +-----------------------+    MagnetMovement.pull    +--------------------+
| Area Pindai AABB | -----------------------> | List<ExperienceOrb>   | ------------------------> | Koleksi Pemain     |
+------------------+                          +-----------------------+                           +--------------------+
                                                          |
                                                          v
                                              [Terapkan NoClip Pergeseran Fase]
                                              [Terapkan Vektor Kecepatan Lerp]
                                              [Batasi Emisi Partikel Percikan]

⚡ Fisika Tersinkronisasi & Pergeseran Fase

  1. Pergeseran Fase (NoClip): Orb pengalaman melintasi blok padat untuk menghindari terjebak di balik dinding atau di dalam sudut langit-langit.
  2. Interpolasi Kecepatan: Orb berakselerasi secara mulus menuju posisi mata pemain menggunakan persentase kecepatan dan akselerasi yang dikonfigurasi.
  3. Penyaringan Garis Pandang: Ketika ig:magnet_los_only true, orb XP harus terlihat oleh pemain atau memiliki momentum magnetisasi aktif.

🛡️ Pencegahan Lag & Pengumpulan Partikel

java
int maxParticleSources = ModGameRules.getInt(player.level(), ModGameRules.MAGNET_MAX_PARTICLE_SOURCES);
int particleSourceCount = 0;

for (ExperienceOrb orb : orbs) {
    boolean shouldSpawnParticles = false;
    if (particleSourceCount < maxParticleSources) {
        shouldSpawnParticles = true;
        particleSourceCount++;
    }
    MagnetMovement.pull(orb, player, shouldSpawnParticles);
}
  • Maks Sumber Partikel: Hanya $N$ entitas pertama per tick yang memunculkan jejak visual.
  • Fallback Aman Klien: Di dalam MagnetMovement.java, jika level bukan ServerLevel, pemunculan partikel beralih secara aman ke level.addParticle(...).

⚙️ Konfigurasi & GameRules Terkait

GameRuleTipeStandarDeskripsi
ig:magnet_affects_xpBooleantrueMenentukan apakah magnet menarik Orb Pengalaman.
ig:magnet_particlesBooleantrueSakelar utama untuk efek partikel.
ig:magnet_particle_countInteger1Partikel percikan yang dimunculkan per entitas per tick partikel.
ig:magnet_max_particle_sourcesInteger5Jumlah entitas maksimum yang boleh memancarkan partikel secara bersamaan.

🔗 Dokumentasi Wiki Terkait

Official documentation & web portal for Dasik Igaijinn mods.