Bu yazı Cem Geçgel tarafından sitemize gönderilmiştir.
Bu yazıda blok oluşturmayı göstereceğim (1.7.10 için). Zaten bir rehber vardı. Devamı gibi düşünebilirsiniz. Benim dediklerimi yaparken hata verebilir. Benim gösterdiklerimin hepsini yaptıktan sonra hatalara bakın. Eğer kalırsa kontrol edin. Olmazsa kodu yazın, ben bakarım.
Blok oluşturmak için ilk önce ana mod dosyamıza gelip,
” public class DOSYAMIZINADI ”
kodundan hemen sonraki parantezin içine şunu yazıyoruz (Yazacağım kodlarda en dış kısımdaki tırnakları almayın! Fakat kodun içinde bazen tırnak kullanılabiliyor. Zaten arada boşluk bırakacağım.) :
” public final static Block X = new Y(Material.Z); ”
X kısmına bloğun oyun tarafından algılanacağı ismi (oyuncular görmeyecek), Y kısmına bloğun kodlarının bulunacağı dosyanın adı (ilerleyen kısımda onu da göstereceğim), Z kısmına da bloğun materyalini (çeşidini) yazacağız (Bloğun çeşidi, bloğun hangi araç ile kırılabileceği, fırında yatık olup olamayacağı vb. şeyleri belirler.). Ayrıca “(Material.” kısmında siz “.”ya basınca biraz beklerseniz size hangi materyaller olduğunu söyler. Azıcık İngilizce’niz varsa anlarsınız materyallerin ne olduğunu ya da deneye deneye hangi materyal size uygunsa seçersiniz.
Böylece blok artık var. Fakat oyuna girilmiş değil (yani oyunda blok yok). Oyuna eklemek için
” @EventHandler
public void init(FMLInitializationEvent event) ”
kodundan hemen sonraki ilk parantezin içine şu kodları yazın :
” GameRegistry.registerBlock(X, “X”);
LanguageRegistry.addName(X, “T”); ”
X kısmını zaten biliyorsunuz, T ise oyuncunun envanterinde göreceği ad. Bu ad Türkçe karakter içerebilir (ş, ğ, ü vb.). Bu dosyada (ana mod dosyamız) yapılacaklar şimdilik bu. Şimdi bloğun dosyasına geçelim.
Ana mod dosyamızın bulunduğu package’a adı Y olan bir class türü dosya açıyoruz. Dosyanın içi şöyle olmalı :
” package S;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
public class Y extends Block
{
public Y(Material material)
{
super(material);
setCreativeTab(CreativeTabs.tabBlock);
}
} ”
Y kısmını zaten biliyorsunuz, S ise ana mod dosyamızın bulunduğu package’ın adı.
Şimdilik bu kadar gösterdim. Blok şuan oyunda ve Yaratıcı Mod’da “Bloklar” bölümünde (altlarda olacaktır büyük ihtimal ile farenin tekerleği ile kayarsınız aşağıya). Fakat dokusu (texture) olmadığı için mor ve siyah kareler halinde görünecektir. Herhangi bir özelliği yok. Belirli bir dayanıklılığı yok bu nedenle tnt veya creeper rahatlıkla patlatır. Belirli bir sertliği yok bu nedenle el ile bile tek vuruşta kırılır. Özel sesi yok ama materyalini gösterdiğimiz için ona göre bir ses verir. Eğer kazmayla kırılmasını ama toprak sesi çıkarmasını istersek özel ses gireriz. Ya da bu blok kırıldığında ne düşürecek kendisini mi yoksa herhangi bir eşyayı mı (cevher mesela)?
Yukarıdakileri devamında yazarım. Devamını isterseniz belirtin. Ona göre istemiyorsanız boşuna uğraşmam. Bu kadar uzun bir yazıyı üç kez yazmak zorunda kaldım. Destek bekliyorum. İyi eğlenceler.
Bu arada şuan bir mod yazıyorum. Onu da eğer bitirirsem yüklerim. Ama biraz basit olacaktır. Daha sonra kendimi geliştiririm. Yani bir buildcraft beklemeyin. 😀
istiyom lan
Destek için sağ ol!
Çok karmaşık bir anlatım. Ayrıca bu kadar detaylı anlatmana gerek de yoktu.
Herkes iyice öğrensin diye anlattım sonuçta yarım yamalak öğrenmelerini istemiyorum. Bu Forge kalıplarını öğrenirlerse deneyerek devamını getirirler. Zaten bir bütün olarak gösterdim. Daha sonra her kelimenin ne anlama geldiğini ve neden kullanıldığını da yazacağım. Anlaşılabileceğini düşünüyorum.
Sıfırdan başlayacak biri bunu anlayamaz. Yaptığınız anlatımdan sadece java bilenler anlayabilir…
Zaten ben Forge ‘un sitesinde mod yazmayı öğrendim. Daha bilmediğim şeyler de var. Fakat açarsanız Forge’un sitesini orada “Biraz Java kodlamasını bilmeniz gerekiyor.” yazıyor. Ben bunu sade olarak anlatmaya çalıştım. Ve bana göre bu çok basit bir anlatım. Eğer Java bilen bir topluluğa yazsaydım inanın çok daha farklı bir yazı olurdu. Ben Java bildiğim için kendimden söylüyorum.
Derslerinin Devamını Beklerim
admin onaylama
olmuyor daha iyi bir sekilde anlat nasıl yani bir yeni metin belgesi açıp içine
public class( public final static Block X =tıtle.bronz.cevherı new Y(Material.Z bronz
@EventHandler
public void init(FMLInitializationEvent event)
GameRegistry.registerBlock(X, “X”);
LanguageRegistry.addName(X tıtle.bronz.cevheri, “T bronz cehveri”);
boylemi 1 tanesine digerine soyle yazdım
package S;7
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
public class Y extends Block
{
public Y version(Material material)
{
super(material);
setCreativeTab(CreativeTabs.tabBlock);
}
}
yaptım olmadı 2. bolumde daha ıyı acıkla lutfen
Sitede zaten bir seri vardı. Onları uyguladıktan sonra yapacaktınız. En iyisi ben sonraki yazıda başlangıcı göstereyim.
Yeni yazıyı oluşturdum. Başlangıcı detaylı istedin. 2 bölüm olacak. İlk bölüm hazır. Ama editör ol butonu değişmiş. Bu nedenle bekleyeceğiz. Bunları metin belgesine yapmayacaksın. Yazıyı beklersen mutlu olurum.
ee diyorsun metin belgesine yazmıcaz nereye yazcaz
Daha dikkatli okuyunuz. Olmadı yeni yazılarımıza bakınız. Sorununuz çözülecektir.
ama benimki launcher
abi bunları neye yazacaz mcreator a mı neye yani
Son yazılara bakın.
Hazır kodları versene
Lütfen yardım edin yada özel ulaşarak sorunu çözmeme yardım edin mod yazıyorum ama burdaki konuyla alakası yok…
Ben yarasadan bir eşya düşmesini istiyorum ama düşmüyor bu eşyayı kendim kodladım kodu nereye yazmam gerekli packet açmam lazımı hangi kodları kullanmalıyım gibi şeyleri sölermisiniz ama lütfen şunu yapma pls
ItemStack stack = new ItemStack(Items.stick);
direk modun içinden bir itemi yerine yaz şimdiden tşk
Saol