IMLEGEND
Aileden
Standart Mod Dosyalarını Oluşturma
Mod yazmaya başlamamız için gereken standart mod dosyalarımız var. Bunları şöyle sıralayabiliriz;
- Ana Mod Sınıfı: Modumuzun oyuna dahil olmasını ve oluşturduğumuz blok, eşya vesairenin oyuna eklenmesini sağlar ve düzenler.
- Kaynaklar Sınıfı: Modumuzun İsmi, Sürümü gibi kaynakları barındıracak olan sınıf.
- Proxy Sınıfları: Modumuzun oyunda görüntü oluşturmasını kontrol edecek olan sınıf.
- Ana Mod Paketi: Geçen bölümde size paketlerden bahsedeceğimi söylemiştim. Paketler sınıfların gruplandırılmasıdır. Aynı paket içerisindeki sınıflar birbirine bağlanır. Aralarındaki çağırma ve tanımlamalara import istemezler. Ayrıca Eğer siz belirtmezseniz sınıf, metot ve değişkenlerin erişim seviyesi paketi arasında olur. Bunlara Java ile ilgili bölümlerde değineceğim.
Bu nedenle hangi sınıfı çağıracağımızı kolaylıkla anlarız. İmla şöyle;
- Her harf küçük olarak yazılacak.
- Türkçe karakter kullanılmayacak. (Üzgünüm...)
- Eğer bir İnternet siteniz varsa onun uzantısıyla başlayacak. Örnek; “comâ€.
- Eğer bir İnternet siteniz yoksa “me†kelimesi ile başlayacak. Örnek; “meâ€
- İkinci kelime siteniz varsa onun adı ile devam edecek. Örnek; “com.mineturkâ€.
- Eğer siteniz yoksa ikinci kelime adınız veya takma adınız veya soyadınız ile devam edecek. Örnek; “me.centeglasseredâ€.
- Üçüncü kelime modunuzun ismi olmalı. Örnek; “me.centeglassered.mineturkâ€.
- Dördüncü kelime ise o paketin ne ile alakalı olduğunu yazar. Eğer küçük bir modsa 3 kelimeli bir paketin içine tüm dosyaları koyarsınız. Örnek; “me.centeglassered.mineturk.anadosyalarâ€.
- Eğer o paketin içindeki dosyalar fazlaysa beşinci bir kelime ile aynı amaçlı dosyalar birleştirilebilir. Örnek; “me.centeglassered.mineturk.anadosyalar.proxyâ€.
- Kelimeler “.†ile ayrılacak.
- Rakamlar kullanılmayacak.
- “/, |, *, ;, :†gibi özel karakterler kullanılmayacak.
Sonra oluşturduğunuz pakete sağ tıklayın ve New’e gelin. Bu sefer Class’ı seçin. Gelen pencerenin yukarılarına doğru Package kısmı var. Oranın “x.y.z.anadosyalar†olduğuna emin olun. Sınıf isminde de programcılar arasında olan veya Java’nın zorunlu kıldığı imlalar var. Bunları birleştirerek şöyle özetlerim;
- Boşluk karakteri kullanılmayacak.
- Rakam ile başlamayacak fakat rakam kullanılabilir.
- Birden çok kelime varsa kelimeler büyük harfle başlayacak ve bitişik yazılacak. Örnek; “AnaModSınıfıâ€.
- “/, |, *, ;, :†gibi özel karakterler kullanılmayacak.
- Türkçe karakterler kullanılmayacak. (Hala üzgünüm...)
- “_†karakteri kullanılabilir. Genel kullanımı şöyledir; “SamanBlogu_1â€, “SamanBlogu_2â€, “SamanBlogu_3″...
Az önce bir sınıf oluşturdunuz. Sınıflar kodları, metotları, değişkenleri... tutan yapılardır. Aslında bir iskelet gibidirler. Sınıflardan nesneler oluşturulur ve bu nesneler erişim düzeyine göre static eki almayan her şeyi kullanabilir. İlerleyen kısımlarda dalacağız. Şimdilik sabredin. Mikrofon bekliyorum. Sınıfımızın içini şu şekilde doldurmalıyız. (x.y.z yerine kendi paketinizin ilk üç kelimesini yazmalısınız) Kopyala â€â€œ Yapıştır serbest; (<BuSınıfınAdınıYazın> kısmına sınıfa verdiğiniz adı yazın)
Kod:
package x.y.z.anadosyalar;
import x.y.z.anadosyalar.proxy.ServerProxy;
import x.y.z.kutuphane.MetinKaynagi;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
@[B][URL="https://www.maxigamerz.com/member.php?u=71851"]mod[/URL][/B](modid = MetinKaynagi.MODID, version = MetinKaynagi.VERSION, name = MetinKaynagi.NAME)
public class <BuSınıfınAdınıYazın> {
@[B][URL="https://www.maxigamerz.com/member.php?u=197113"]Side[/URL][/B]dProxy(clientSide = MetinKaynagi.CLIENTSIDE, serverSide = MetinKaynagi.SERVERSIDE)
public static ServerProxy proxy;
@[B][URL="https://www.maxigamerz.com/member.php?u=141549"]Eventhandler[/URL][/B]
public static void onYukleme(FMLPreInitializationEvent e) {
// CREATIVE TABS
// ITEMS
// BLOCKS
// WORLD
// RECIPES
}
@[B][URL="https://www.maxigamerz.com/member.php?u=141549"]Eventhandler[/URL][/B]
public static void yukleme(FMLInitializationEvent e) {
// PROXY
proxy.registerRendererInfo();
// TILE ENTITY
// GUI
// PACAGE REGISTERING
}
@[B][URL="https://www.maxigamerz.com/member.php?u=141549"]Eventhandler[/URL][/B]
public static void postInit(FMLPostInitializationEvent e) {
}
}
Şimdilik hata verebilir. Çünkü orada kullandığımız bütün sınıfları oluşturmadık. Daha yoklar. Şimdi paketinizin üstüne sağ tıklayın ve New’den Package’ı seçin. Bu sefer paketin üstüne sağ tıklayarak yeni paket oluşturduğunuz için Pakage yazan yerde zaten “x.y.z.anadosyalar†yazıyordur. Yazmıyorsa siz yazın. Sonuna da “.proxyâ€i ekleyin. Yani paketinizin adı “x.y.z.anadosyalar.proxy†olmalı. Bu paketin içine de bir sınıf oluşturun ve adı “ServerProxy†olsun. (artık paket ve sınıf oluşturmayı adım adım anlatmayacağım) Bu sınıfın içine şunları yazın;
Kod:
package x.y.z.anadosyalar.proxy;
public class ServerProxy {
public void registerRendererInfo() {
}
}
Kod:
package me.centeglassered.mineturk.anadosyalar.proxy;
public class ClientProxy extends ServerProxy {
public void registerRendererInfo() {
}
}
Bunları yazdıktan sonra “Ctrl†tuşu ile “S†tuşuna aynı anda basın ve kaydedin. “public void registerRendererInfo() {†satırının soluna doğru o hizada gidin. Yukarı doğru bakan yeşil bir ok görüyorsanız doğru yazmışsınız demektir. Eğer görmüyorsanız kontrol edin.
Daha sonra yeni bir paket oluşturalım. Adı da “x.y.z.kutuphane†olsun. Bu pakete kaynak sınıflarımız gelecek. İlk kaynak sınıfımızı oluşturalım. Adını “MetinKaynagi†olarak ayarlayın. İçine de şunları yazın; (x yerine paketinizin ilk kelimesini, y yerine paketinizin ikinci kelimesini, z yerine de paketinizin üçüncü kelimesini yazın)
Kod:
package x.y.z.kutuphane;
public class MetinKaynagi {
public static final String MODID = "z";
public static final String NAME = "Modun Adı";
public static final String VERSION = "Modun Sürümü";
public static final String CLIENTSIDE = "x.y.z.anadosyalar.proxy.ClientProxy";
public static final String SERVERSIDE = "x.y.z.anadosyalar.proxy.ServerProxy";
}
Sonra sınıflarımızı kaydedelim. (“Ctrl†ve “S†tuşuna aynı anda basın. Bir daha söylemeyeceğim işimi uzatıyor.) Ve oyunu başlatalım. Başlatmayı 2. bölümde göstermiştim. Çalışmıyorsa yazdığınız kodları elden geçirin. Mods butonuna basın ve oradan kendi modunuzu arayın. Bulduğunuzda onun üzerine tıklayın ve “Modunuzun gösterilen bilgileri doğru mu?†diye kontrol edin. Zaten yalnızca sürüm ve isim ayarladık. Fazla bir şey görünmeyecek. Ama artık yeni şeyler eklemeye hazırsınız. Ana dosyanız tamam. Blok Oluşturma adlı yazımdaki yönergeler ile bloklar oluşturabilirsiniz.
Mod Bilgilerini Düzenleme (Ayrıntılı)
“src/main/java†klasörünün altında “src/main/resources†isimli başka bir klasör olmalı. Onu açın. İçinde “mcmod.info†bir dosya var. Bu dosyayı tutun ve kod yazdığınız alana sürükleyin. Bir metin belirmelidir. Orayı şöyle ayarlayın;
Kod:
[
{
"modid": "z",
"name": "Modunuzun İsmi",
"description": "Modunuzun Açıklaması: Türkçe Karakter Kabulümüzdür",
"version": "Sürüm",
"mcversion": "1.7.10",
"url": "Buraya varsa modunuzun yükleme adresini falan filan yazın aslında yazmanıza da gerek yokta...",
"updateUrl": "",
"authorList": [">p|q<"],
"credits": ">p|q< tarafından yazılmıştır. Çalmayınız... :D",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
Tabii z kısmına paketinizin 3. kelimesini yazacaksınız. Burada yazdığınız bilgiler ile MetinKaynagi.java sınıfında yazdığınız bilgiler aynı olmalıdır. Artık oyuna girdiğinizde ve Mods kısmından modunuzun bilgilerine baktığınızda mcmod.info dosyasındaki bilgilerin yer aldığını göreceksiniz. Eğer görünmüyorsa bir yanlışınız vardır. mcmod.info dosyasına tekrar ayar çekin.
- Bölüm 1: https://www.maxigamerz.com/f1478/minecraft-mod-nasil-yazilir-bolum-1-a-241769/
- Bölüm 2: https://www.maxigamerz.com/f1478/minecraft-mod-nasil-yazilir-bolum-2-a-241770/
- Bölüm 3: https://www.maxigamerz.com/f1478/minecraft-mod-nasil-yazilir-bolum-3-a-241771/
- Bölüm 4: https://www.maxigamerz.com/f1478/minecraft-mod-nasil-yazilir-bolum-4-a-241772/
Alıntıdır.
Son düzenleme: