• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

MineCraft Mod Nasıl Yazılır ? Bölüm 4

  • Konuyu başlatan Konuyu başlatan IMLEGEND
  • Başlangıç tarihi Başlangıç tarihi

IMLEGEND

Aileden
Aktiflik
K.Tarihi
23 Nis 2009
Mesajlar
9,353
Puanı
152
Konum
Damn Of Hell
maxigamebanner1.png

maxayrac3.jpg

Öncelikle; Bir Java anlatımı hazırladım ona buradan erişebilirsiniz. (İndirip okumanızı öneririm öbür türlü Türkçe karakterler sorun çıkarıyor)

Eşya Oluşturma

Mod için gerekli ana bileşenleri bitirdiğimize göre artık eşya yapmaya başlayabiliriz değil mi?

İki yeni sınıf ve bir yeni paket oluşturacağız. Paketimizin ismi x.y.z.esyalar olsun. Önceki yazılardaki gibi x, y ve z yerine gerekli şeyleri yazın. İlk sınıfımızın adı Esya olacak. Eşyalarla bizim yerimize o uğraşacak. İçine şunları yazın;

Kod:
[COLOR=#000000][FONT=verdana]package x.y.z.esyalar;

import cpw.mods.fml.common.registry.GameRegistry;
import x.y.z.kutuphane.MetinKaynagi;
import net.minecraft.item.Item;

public class Esya extends Item {

 public Esya(String no) {
 
 setUnlocalizedName(no);
 setTextureName(MetinKaynagi.MODID + ":" + no);
 }
 
 public void ekle() {
 
 GameRegistry.registerItem(this, getUnlocalizedName().substring(5));
 }
}[/FONT][/COLOR]

Burada biz oluşturmak istediğimiz eşyaya bir no (id) veriyor, dokusunu vs. ayarlıyor. Sonra bunu oyuna eklemek için yalnızca ekle metodunu çağıracağız ve bitti. Eşyamız hazır. Ana mod dosyamıza girersek oradaki // ITEMS ibaresini göreceksiniz. Aslında bu koda etki etmez. Çünkü bir yorumdur. Başında // olan satır yorum olur. Bu eşyaları nereye yazmamız gerektiğini gösteriyor sadece. Onun altına;

Kod:
[COLOR=#000000][FONT=verdana]Esya deneme = new Esya("deneme");
deneme.ekle();[/FONT][/COLOR]

yazarsanız oyuna eklenir. Bu eşyayı almak için;

Kod:
[COLOR=#000000][FONT=verdana]/give @p z:deneme[/FONT][/COLOR]

yazmanız gerekir. Tabii z yerine modid gelecek.

Düzenleme

Ama fark ettiğiniz gibi biz bu eşyaya hiç bir özellik doku vermedik. Dokuyu daha oluşturmadık bu nedenle mor-siyah görünüyor. Adı bile yok. item.deneme.name olarak görünüyor. Adları aynı kaynak paketlerinde olduğu gibi lang dosyalarıyla halledeceğiz. Eşyaya özellik de verdiğimizi düşünürsek... Ana sınıfımız +1000 satır olur falan. Çünkü bloklar, canavarlar vs. doldurur. Bu nedenle x.y.z.esyalar paketinin içine 2. sınıfımızı oluşturuyoruz. Adı EsyaYoneticisi olacak. İçinde şunlar yazmalı;

Kod:
[COLOR=#000000][FONT=verdana]package x.y.z.esyalar;

public class EsyaYoneticisi {
 
 public static void kur() {
 
 tanimla();
 ekle();
 }

 private static void tanimla() {

 }

 private static void ekle() {

 }
}[/FONT][/COLOR]

Fark ettiğiniz gibi biz ana mod dosyamızda direkt kur() metodunu çağıracağız. O da kalan tanımla() ve ekle() metotlarını çağıracak. Bu metotları çağırmak için nesneye ihtiyacımız yok çünkü başlarında static var. Ayrıca zaten tanimla() ve ekle() metodunu biz dışarıdan çağıramayız çünkü private lar. Yani yalnızca kendi dosyalarında kullanılabilirler.

Ana mod dosyamızda // ITEMS bölümünün altına EsyaYoneticisi.kur(); yazıyoruz. Daha sonra eşyalarımızı burada oluşturacağız.

Eşya oluşturmak için şunu örnek alın;

Kod:
[COLOR=#000000][FONT=verdana]package x.y.z.esyalar;

public class EsyaYoneticisi {

 public static Esya deneme; 

 public static void kur() {
 
  tanimla();
  ekle();
 }

 private static void tanimla() {

  deneme = new Esya("deneme");
 }

 private static void ekle() {

  deneme.ekle();
 }
}[/FONT][/COLOR]

Doku Oluşturma

Şimdi dokuları nasıl oluşturacağımıza geçelim. Forge kurduğumuz klasörün içinde src\main\resources klasörüne gelelim. Daha sonra şu klasörleri oluşturalım;

resources ”â€> assets

assets ”â€> z (modid)
z (modid) ”â€> textures
textures ”â€> items
items ”â€> no.png

Eşya dokuları src\main\resources\assets\z\textures\items klasörüne girecek.

no.png bizim dokumuz olacak. Yani kodda nosunu “deneme” olarak verdiğimiz eşyanın dokusu deneme.png olmalı. Dokuları oluştururken paint.net‘i kullanmanızı öneririm. (Açılan sayfada sağda indirme bağlantısı var.)

İsim Verme

Şimdi geldik isim vermeye.

lang dosyamızı oluşturmak için;

src\main\resources\assets\z\lang klasörü oluşturup içine tr_TR.txt koyun.

İçine item.deneme.name=Deneme Eşyası vs. bir ad yazın ama başındaki item.deneme.name önemli. Eşittir ile ad birleşik olacak.

Daha sonra farklı kaydetten bunu tr_TR.lang olarak kaydedin.

Eğer Türkçe karakter kullanmayacaksanız bunun en_US.lang halini yapıp bitirebilirsiniz.

Eğer Türkçe karakter kullanmak istiyorsanız, dosyayı Notpad++ ile açıp yukarıdaki Kodlama sekmesinden UTF-8’e Dönüştür tuşuna basın.

Bunun en_US.lang halini yapın.

en_US.lang neden önemli, çünkü eğer oyuncunun seçtiği dilin lang dosyası yoksa en_US.lang kullanılır.

Eğer bunların dışında bir dil eklemek istiyorsanız bu sayfadaki listeye bakın. O listedeki Locale Code dosya adı olmalı.

- 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:
Geri
Üst