Dönüştürücülere Ulaşın

Minecraft kodunun bazı kısımları kullanılamadığında, bu bölüme denk gelebilirsiniz. Bu alana veya yönteme erişmek için yansıma kullanabilirsiniz, fakat MCP bile, iki farklı isme sahip olacağınızdan işlemi daha zor yapar - geliştirme ortamındaki MCP adları ve oluşturulan Searge adları.

Mesela, tick () yöntemine yansıma kullanarak erişmek için, ortamdaki tick ‘i kullanmanız gerekir, ancak geliştirmedeki func_71217_p kullanmanız gerekir. Tekrar şaşırtma adımı, yalnızca yansıma çağrısına geçirilen dize parametresine değil, yöntemlere ve alanlara yapılan doğrudan başvuruları yönetir.

Bir çözüm olarak, ForgeGradle, erişim dönüştürücüleri (veya AT) doğrudan (yansıma olmadan) başvuruda bulunabilir, böylece otomatik olarak belirtilen yöntemleri/alanları herkese açarak referans olarak kullanmayı destekler. Öncelikle Minecraft kod tabanı ile kullanım amacına uygun olarak diğer projelerdeki sınıflara da uygulanabilirler. SpongeVanilla ve Forge, eklentinin JAR manifestosunda yapılandırılmışsa bunları üretim aşamasında da uygulayacaktır.

Kurulum

ForgeGradle, kaynak klasörlerinizde dosya adı sonekiyle``_at.cfg`` olan erişim dönüştürücü dosyalarını otomatik olarak tarar. Erişim dönüştürücüsünü çalışma zamanında kullanabilmek için bunları kaynak dizininizdeki bir “META-INF” klasörüne eklemelisiniz, örneğin META-INF/myplugin_at.cfg.

3 farklı erişim dönüştürücü türü vardır: sınıfların, alanların ve yöntemlerin değiştiricilerini değiştirebilirsiniz. Erişim dönüştürücü hattı, 2 parça (sınıflar için) veya 3 parça (alanlar ve yöntemler için), her biri bir boşluk ile ayrılmış olarak tanımlanır.

  • Yöntemi/alanı değiştirmek istediğiniz erişim türü, ör.``public`` or protected. Bir alandan final kelimesini kaldırmak için, erişim türünün sonuna -f ekleyin. ör. public-f.

  • Tam olarak nitelenmiş sınıf adı, ör. net.minecraft.server.MinecraftServer

  • Alanlar ve yöntemler için: Searge alan adı yada yöntem adı ve yöntem imzası, örn. `field_54654_a veya func_4444_a()V

Tüyo

Onlara öneki # ile yorum ekleyebilirsiniz. Her erişim dönüştürücü hattından sonra MCP adını eklemek, hattın hangi alana / metoda başvurduğunu bildiğinizden emin olmak için iyi bir kuraldır.

Erişim dönüştürücü hatları için iki örnek:

public-f net.minecraft.server.MinecraftServer field_71308_o # anvilFile
public net.minecraft.server.MinecraftServer func_71260_j()V # stopServer
public-f net.minecraft.item.ItemStack

Erişim dönüştürücülerini geliştirme ortamınıza uygulamak için Gradle setupDecompWorkspace görevini tekrar çalıştırın ve Gradle projenizi yenileyin:

gradle setupDecompWorkspace

Tüyo

MCP ve Sponge IRC kanallarında bulunan bir alana veya metoda hızlı erişim dönüştürücü hattını sağlamak için bulunan MCP bot kullanabilirsiniz. !gm <mcp method name> ya da `!gf <mcp field name> kullanarak bir yöntem aradıktan sonra, listelenen AT satırı access transformer dosyanıza kopyalamanız yeterlidir.

Not

Bir alanı/yöntemi daha az erişilebilir yapmak (ör. public -> private).

Ürünler

Erişim dönüştürücülerini üretimde uygulamak için, eklentinize``META-INF`` dizininde erişim dönüştürücünüzün dosya adı ile bir FMLAT manifesto girişi eklemeniz gerekir.

jar {
    manifest.attributes('FMLAT': 'myplugin_at.cfg')
}