Avant de commencer à vraiment moder Minecraft, il faut un petit temps de préparation ; vous avez été nombreux à réagir par rapport au manque de contenu dans le premier article mais le moding de Minecraft est assez long à apprendre et nous ne voudrions pas faire fuir les lecteurs dû au fait d’un article trop long.

Avant tout, nous allons vous faire un petit planning pour cette édition :

  • Nouveaux liens de téléchargement
  • Installation de MCP et Eclipse
  • Liaison entre Eclipse et les codes de Minecraft
  • Première vue des codes de Minecraft

Téléchargements

Ce qu’il faut savoir, c’est que MCP et ModLoader, à chaque nouvelle mise à jour de Minecraft, sont obligé d’être mise à jour également. Il y a régulièrement l’ajout de fonctions qui aide, ou non, les modeurs.

Minecraft Coder Pack : ici. Pour suivre chaque mises à jour du MCP, nous vous redirigeons sur ce lien.

ModLoader : ici. Pour avoir la dernière version disponible, nous redirigeons sur le topic original de Risugami.

Installation

Bon, maintenant que nous avons le MCP, il faut installer Minecraft. Pour ceci il vous faut premièrement installer ModLoader sur votre Minecraft.jar comme si vous installiez un mod.

Rappel : Windows
Allez dans votre dossier roaming, pour se faire appuyez simultanément sur la touche « Windows » puis « R« , et entrez le texte « %appdata% » avant de valider.
Dirigez-vous dans le dossier « Minecraft » puis allez dans « Bin »

Linux
Le dossier est situé à « ~/home/utilisateur » Appuyez sur ALT + F2 et tapez « .minecraft » pour vous y rendre directement. Allez ensuite dans le dossier « Bin »

Mac OS
Le dossier minecraft (Sans le point) est situé à « Utilisateur > Bibliothèque > Application support »

 

Une fois votre Minecraft.jar trouvé, ouvrez-le avec votre logiciel d’extraction (Qui s’appelle 7ZFM si vous utilisez 7Zip). Mettez la fenêtre dans un coin de l’écran, et ouvrez le modloader de la même façon, qu’ils soient visibles sur l’écran en même temps.

Sélectionnez la totalité des fichiers dans l’archive du modloader, et faites-les glisser dans celle de votre Minecraft.jar.

Supprimez le fichier « META-INF » dans votre Minecraft.jar, fermez tout.

 

Maintenant que c’est fait, il va nous falloir récupérer les ressources de Minecraft et le lanceur. Alors comment va t-on faire ? Pour ceci, dans le dossier de MCP on peut voir un dossier qui s’appelle « jars » ; il nous suffit de faire glisser les dossiers « bin » et « resources » de .minecraft vers le dossier « jars ».

Dossier jars

Ceci fait, revenons au dossier source et lançons le fichier « decompile.bat ». L’invite de commande s’ouvre, attendez qu’il vous demande d’appuyer sur une touche pour le fermer. Comme vous pouvez le voir, il y a de nouveaux dossiers. Pour le moment, nous n’allons pas nous attarder dessus puisqu’ils nous ne serviront à rien dans ce tutoriel, sauf un.

Eclipse

Maintenant que vous avez télécharger Eclipse, extrayez l’archive vers un dossier de votre bureau et lancez « eclipse.exe ». Une boîte de dialogue s’ouvre. Cliquez sur « Browse » et cherchez votre dossier « eclipse » lui même dans votre dossier du MCP.

Démarrage d'Eclipse

Puis cliquez sur « Ok ». Laissez Eclipse se démarrer totalement. Maintenant double cliquez sur « Client > src > net.minecraft.src » et maintenant, gros lag. Ne vous inquiétez pas, c’est juste qu’Eclipse charge tous les fichiers de Minecraft. Après quelques secondes (ou fractions de seconde) vous devriez arriver à ça :

Quelques fichiers de Minecraft

Voilà, vous avez fait communiquer tous les fichiers de Minecraft avec Eclipse. Nous pouvons, donc, passer au plus excitant : modifier les codes de Minecraft et/ou créer notre premier mod.

Dictionnaire

Nous allons très souvent découvrir des nouveaux mots de informatique. Voici ceux de cette semaine :

Variable : n.f. désignant un mot, groupe de mot ou chiffre qui permet de stocker des données tel que des chiffres ou des chaînes.

Méthode ou fonction : n.f. désignant un morceau de code qui va réaliser une tâche ou un calcul.

Class : n.f. aussi appelé fichier class en Java qui désigne un fichier qui va constituer notre programme.

Les codes de Minecraft

Qu’allons nous faire en premier ? Faire l’explosion du bloc de TNT multipliée par 3 ? Le zombie 19 fois plus rapide ? La stone qui fonctionne comme le sand ?

Le bloc de TNT

Pour ça il va nous falloir ouvrir le fichier appelé « EntityTNTPrimed » et aller à la ligne 94. Ici nous pouvons voir :

private void explode()
{
float f = 4F; //on décide de la puissance
worldObj.createExplosion(null, posX, posY, posZ, f); // on créé une explosion aux position du bloc
}

Ici, nous avons la méthode de type rien (void) appelée « explode » traduit de l’anglais « explosion ». La variable « f » est initialisée de type « float » qui représente un chiffre à virgule ou non. Ensuite le « worldObj » représente le world ou monde. On créé l’explosion en appelant la méthode « createExplosion » aux position du bloc de TNT et d’explosion « f » donc de la variable initialisée plus haut. Nous allons simplement modifier le 4 en 8 (ou n’importe quel chiffre). Maintenant cliquez sur  appelé « Run ». Minecraft se lance, allumez un bloc de TNT est admirez !

La vitesse du zombie

Pour ça, il va nous falloir chercher dans le fichier « EntityZombie ».  À la ligne 11 nous pouvons voir :

moveSpeed = 0.23F;

moveSpeed est, ici, une variable de type « float » représentative de la vitesse du zombie, qui est égale ici 0.23. Il nous faut multiplier 0.23 par 19. Ca fait 1 et je retiens 2 auquel je rajoute 1… Bref on va laisser l’ordinateur le faire !

moveSpeed = 0.23F * 19; //on décide la vitesse

Ici, on dit simplement à l’ordinateur de faire le produit de la vitesse du zombie par 19 ! Il nous a tout de suite calculé que la vitesse du zombie est désormais égale à 4.37 ! Petit vous dîtes ? Rappelez vous que la vitesse du joueur est 4 fois inférieure.

La stone VS le sand

C’est d’un seul coup plus dur. Au début de la class « BlockStone » que nous allons modifier nous pouvons voir :

public class BlockStone extends Block

que nous allons remplacer par :

public class BlockStone extends BlockSand //début de class et héritage

En fait, nous lui disons ici que le bloc de Stone utilise les propriétés du bloc de sand. Vous avez lancé ? Vous avez planté… C’est normal ! Il nous reste un bug à corriger. Comme la stone prend les propriétés du bloc de sand, il nous faut modifier le Material en bas :

public BlockStone(int par1, int par2)
{
super(par1, par2, Material.rock);
}

en

public BlockStone(int par1, int par2)
{
super(par1, par2); //initialisation du bloc de Stone
}

En fait, comme le bloc de stone est de type « rock » et que le sand est de type « sand », ça porte à la confusion dans le code et le jeu plante. C’est pour ça que nous avons tout simplement supprimé le « Material.rock ». Et maintenant on peut lancer ! Votre map ne s’écroule pas ? Cassez un bloc de stone. Code prouvé.

On se retrouve la semaine prochaine pour la création de notre premier bloc et de notre premier item. On leur donnera, également, des fonctions utiles ou non.