Learn · concepts
Ara Katman Nedir? Minecraft Haritaları Açıklandı
Fabric, Minecraft kodunun karmaşıklaştırılmış katmanıdır ve ara katman aracılığıyla çalışır. Alan adları yeniden adlandırıldığında bile modlar, sürümler arasında sorunsuz bir şekilde çalışmaya devam eder.
Ara Katman Nedir?
Ara katman, Fabric'in Minecraft'ın karartılmış kodunun üzerine yerleştirdiği kalıcı adlandırma katmanıdır. Mojang, oyunla birlikte karıştırılmış sınıf, alan ve yöntem adlarıyla birlikte gönderir; bu adlar her sürümde değişir. Ara katman, bunlardan her birine, oyunun güncellenmesi sonrasında bile derlenmiş bir modun yamadığı kodu bulmaya devam etmesini sağlayacak sabit bir ad verir.
Bunu bir sözleşme gibi düşünün: Fabric, oyun içinde bir şey varsa, o şeyin tüm sürümlerde aynı Ara Katman adına sahip olacağı sözünü verir. Bu sözleşme, bir modun derlenmiş bir jar dosyası olarak gönderilmesiyle birlikte yeni sürümlerde yeniden derlenmeden çalışmaya devam etmesini sağlar.
Ara Katman Aslında Nedir
Ara katman, bir dizi eşlemedir: her karartılmış Minecraft sembolünü sabit, makine tarafından oluşturulmuş bir adla eşleştiren bir arama tablosudur. Oyunun a olarak çağırdığı bir sınıf, Ara Katman'da class_1234 olabilir. Ad kötü olsa da, o sembol için tüm sürümlerde kalıcıdır.
Mojang, her derlemede oyunu karartır. Aksi takdirde adlar sürümden sürüme kayacaktır; bu nedenle ham karartılmış adlara karşı derlenmiş bir mod, oyun güncellendiği anda bozulur. Ara katman bu adları dondurur, böylece eşleme, mod değil, değişimi absorbe eder.
Neden Fabric modlarına buna ihtiyaç var
Modlar, geliştiricilerin yazdığı okunabilir isimler yerine, Ara Katman (Intermediary) isimlerine göre derlenerek dağıtılır. Tam da bu karar, birçok durumda bir Fabric modunun yeniden derleme olmadan yeni bir oyun sürümünde çalışmaya devam etmesini sağlar.
Oyun başladığında, Fabric o sürüm için Ara Katman eşlemesini yükler ve oyunun bulanıklaştırılmış sınıflarını, modun beklediği kararlı isimlere yeniden eşler. Mod ve oyun, her ikisi de ham olarak göndermediği bir isim kümesi üzerinde buluşur.
Ara Katman ve geliştirici eşlemeleri
Geliştiriciler class_1234 gibi isimleri okumaz veya yazmaz. Yarn veya Mojmap gibi, sembollere açıklayıcı isimler veren insan tarafından okunabilir eşlemelere göre çalışırlar. Derleme zamanında, bu okunabilir isimler dağıtım için Ara Katman'a dönüştürülür.
| Katman | Örnek isim | Kim kullanır | Sürümlere göre kararlı |
|---|---|---|---|
| Bulanıklaştırılmış | a, field_5678 | Elle kimse | Hayır |
| Ara Katman | class_1234, method_5678 | Dağıtılan mod ikili dosyaları | Evet |
| Yarn / Mojmap | MinecraftClient, isPlayerSpawned() | Geliştiriciler derleme zamanında | Okunabilir, sürüm takibi yapılan |
Bu ayrım, geliştiricilerin kullanıcı dostu isimlere göre kodlamasına olanak tanırken, aslında gönderilen şeyin sürüm kararlılığını korumasını sağlar. Okunabilir eşlemeler değiştirilebilir; Ara Katman ise herkesin üzerinde anlaştığı ortak bir zemindir.
Bir modun yaşam döngüsüne nasıl uyum sağlar
- Bir geliştirici, Yarn veya Mojmap gibi okunabilir bir eşlemeye göre kod yazar.
- Derleme, bu isimleri ara isimlere dönüştürür.
- Mod, ara sembollere referans veren bir jar dosyası olarak dağıtılır.
- Başlangıçta, Fabric çalışan oyunu karartılmış isimlerden ara isimlere yeniden eşler, böylece mod ve oyun her güncellemeden sonra doğru koda yöneliktir.
İşte eşlemelerin neden Fabric modlamanın sessiz ama taşıyıcı bir parçası olmasının nedeni: Her güncellemeden sonra modların doğru koda işaret etmesini sağlayan sözleşmedirler.
Sıkça Sorulan Sorular
Hayır. Yarn, geliştiricilerin kodunu okunabilir bir şekilde eşlediği bir haritadır. Aracı, derlenmiş modların aslında üzerine gönderildiği kararlı, makine tarafından oluşturulan katmandır. Yarn adları, derleme zamanında Aracı'ya kadar derlenir.
Üretiliyorlar, yazılmıyorlar. class_1234 gibi isimlerin güzel olmasına gerek yok, sadece benzersiz ve kalıcı olmaları yeterli. Okunabilirlik Yarn veya Mojmap tarafından ek olarak sağlanıyor.
Hayır. Aracı isimleri sabit tutar, ancak Mojang bir metodu siler veya yeniden yazarsa, kodun kendisi adı ne olursa olsun kaybolur. Kırılmaları azaltır, ortadan kaldırmaz.
Aslında hayır. Fabric'in içinde, arka planda çalışıyor. Sadece bir geliştiriciyseniz veya bir ara sembolü andıran bir çökme günlüğünü okuyorsanız onunla karşılaşırsınız.