German 1.4.7 Modding Tutorials: Basic Block Part 1

In diesem Tutorial zeige ich euch, wie ihr euren ersten einfachen Block zu Minecraft hinzufügt. Einen Teil davon machen wir im Modfile. Das hier ist die Startdatei auf die wir aufbauen:


package tutorial;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
@Mod(modid = “Tutorial_Tutorialmod”, name = “Tutorial”, version = “1.0”)
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class Tutorial 
{
@Init
public void load(FMLInitializationEvent event)
{
}
}

Die erste Zeile, die wir hinzufügen müssen, ist diese:

public static Block tutorialBlock;

Du musst auch net.minecraft.scr.Block importieren. Mach das durch drücken von ctrl+shift+O oder per über den Fehler fahren und “Import net.minecraft.src.Block” auswählen.
Diese Zeile muss in die Klasse, als füge sie in die geschweiften Klammern hinter “Tutorial” ein.
Die Zeile wird eine Blockvariable namens “tutorialBlock” zum Modfile hinzufügen. Sie ist public (öffentlich) und static (fest, statisch), das heißt, auf sie kann von überall per “Tutorial.tutorilaBlock” zugegriffen werden.
Um “tutorialBlock” irgendetwas zuzuweisen, müssen wir diese Zeile hinzufügen:

tutorialBlock = new BlockTutorialBlock(250, 0).setBlockName(“tutorialBlock”);

Diese Zeile muss in der “load”-Methode sein!
Was die Zeile macht, ist: “tutorialBlock” auf “BlockTutorialBlock” setzen, was eine neue Datei ist, die wir im nächsten Teil des Tutorials erstellen werden. Die erste Zahl ist die id des Blocks, die zweite ist der Texturenort. 0 ist oben links, 1 ist rechts davon. In Java fängt man beim zählen bei 0 an, behalte das am besten im Kopf. Zur Zeit wird Minecraft die Textur aus “terrain.png” benutzen, in einem der nächsten Tutorials werde ich zeigen, wie ihr eure eigene png laden könnt. “.setBlockName()” setzt den Namen des Blocks. Es ist Intelligent, den gleichen Namen wie den Variablennamen zu benutzen, falls nicht, wird Minecraft zwar nicht abstürzen, es könnten aber seltsame Fehler auftauchen.
Du wirst jetzt einen Fehler unter “BlockTutorialBlock” haben. Das liegt daran, dass du versuchst, eine Datei aufzurufen, die es nicht gibt. Darum werden wir uns, wie gesagt, im nächsten Tutorial kümmern.
Du wirst dich jetzt vielleicht fragen, warum wir das ganze nicht einfach in eine Zeile schreiben. Ganz einfach: So können wir Block IDs besser konfigurieren, das werden wir auch in einem späteren Tutorial machen.
Es gibt noch zwei Zeilen, die wir schreiben müssen. Die erste lässt Forge wissen, dass “tutorialBlock” ein Block ist. Die Zeile kommt auch in die “load”-Methode.

GameRegistry.registerBlock(tutorialBlock);

Die Zeile ist relativ selbsterklärend. Sie registriert den Block innerhalb der Klammern. “GameRegistry” ist einfach die Datei, die sich um das managen von Blöcken kümmert. Stelle sicher, dass du auch diese Datei importierst.
Das letzte, was wir hinzufügen müssen, ist das hier:

LanguageRegistry.addName(tutorialBlock, “Tutorial Block”);

Diese Zeile setzt “Tutorial Block” als Namen für “tutorialBlock” fest. Das ist der Name, den du später z.B. auch im Inventar sehen wirst.
Die Datei sollte jetzt so aussehen:


package tutorial;
import net.minecraft.block.Block;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = “Tutorial_Tutorialmod”, name = “Tutorial”, version = “1.0”)
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class Tutorial 
{
 public static Block tutorialBlock;
@Init
public void load(FMLInitializationEvent event)
{
  tutorialBlock = new BlockTutorialBlock(250, 0).setBlockName(“tutorialBlock”);
  GameRegistry.registerBlock(tutorialBlock);
  LanguageRegistry.addName(tutorialBlock, “Tutorial Block”);
}
}

Das war alles, was wir für einen Guten Block im Modfile brauchen. Im nächsten Tutorial machen wir das Blockfile.
Der Quellende wird am Ende der Tutorialreihe verfügbar sein.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">