[TUTO]Générer un bloc dans Minecraft

MultizzModing

Aventurier
18 Janvier 2012
10
0
1
27
Bonjour :p

Aujourd'hui, nous allons aborder la function void GenerateSurface().

Cette fonction va permettre de générer ses propres blocs, grâce aux deux axes : X et Z, Y (largeur, longueur, hauteur

En premier temps voici notre fichier mod_MineraiGen.java :

package net.minecraft.scr;
public class mod_MineraiGen extends BaseMod {
public static Block ore = new BlockOre(150, 102).setBlockName("oregen").setHardness(5F);
public void mod_MineraiGen() {
}
public void load() {
ModLoader.RegisterBlock(ore);
ModLoader.AddName(ore, "?? Ore");
// Ajouter ce que vous voulez pour le craft etc...
}
public void GenerateSurface(World world, Random rand, int chunkX, int chunkZ) {
for(int i = 0; i < 50; i++) {
int randPosX = chunkX + rand.nextInt(16);
int randPosY = rand.nextInt(50);
int randPosZ = chunkZ + rand.nextInt(16);
(new WorldGenMinable(ore.blockID, 4)).generate(world, rand, randPosX, randPosY, randPosZ);
}
}

Analyse du code : GenerateSurface

La boucle "for(int i = 0;i < 50; i++) {" sert à générer une veine à chaque passage de la boucle, le "50" sert à 'patcher' la rareté du minerai.

L'entier int randPosY sert à dire dans quelle largeur le bloc peut gen, ici c'est à la couche 50, sa commence à se générer !

Les deux entiers randPosX et randPosZ servent à délimiter le gen du bloc ex :
"A chaque passage de la boucle, le minerai à 50% de chance de gen plus, il gen à partir de la couche 50 et la gen se termine à la largeur et la longeur 16"

la fnc WorldGenMinable permet de générer notre minerai après la définition des variables entière, le "4" est la limite de minerai par Chunk !

Petit PLUS :)

Vous pouvez initialiser la boucle for comme ceci : "for(int i = 0;i < rand.nextInt(100); i++)".
Comme sa, la gen est complétement RANDOM !!!!

Voila ! Merci d'avoir lu, commenter, questioner(WTF) :)

Don't forget that : MultiMod
 
Même si s'est un tutoriel sur un mod si tu pouvais le déplacé dans guide et tutoriel.
Car mod je pense que s'est pour les mods finis, et ces présentations.