Ajouter des blocs dans les grottes

The_Lord_King

Aventurier
6 Juin 2011
11
0
0
Bonjour, je voudrais savoir comment ajouter un bloc que j'ai crée dans une grotte, c'est à dire qu'on le trouve naturellement.
Merci de votre aide.
 
Merci mais c'était pas ça ma question ^^. Je souhaite qu'en faite, le bloc soit généré lors de la création de la map. Qu'on le trouve comme du diamant par exemple.
 
Non, je m'explique. J'ai fais un bloc, une sorte de minerai comme de l'or ou du fer. Et j'aimerais que ce minerai que j'ai fais soit trouvable dans des grottes, pour être miné puis utilisé plus tard.
 
Pour répondre à ta question. J'ai essayé moi même de générer des blocs sur la map. En cherchant en peu je suis tombé sur ce fichier "ChunkProviderGenerate" en déchiffrant le code je me suis aperçu qu'il générait les minerais sur la map et plus précisément entre la ligne 358 et 453.
Je cite et j'explique une des génération de minerai :
for(int k3 = 0; k3 < 2; k3++)
{
int l6 = k + rand.nextInt(16);
int i10 = rand.nextInt(32);
int l12 = l + rand.nextInt(16);
(new WorldGenMinable(Block.oreGold.blockID, 8)).generate(worldObj, rand, l6, i10, l12);
}
int l6 = k + rand.nextInt(16);
int i10 = rand.nextInt(32);
int l12 = l + rand.nextInt(16);[/quote]

D'abord il faut faire une boucle pour toute génération :
for(int k3 = 0; k3 < 2; k3++)
Ensuite les variable dont je ne connais pas vraiment l'utilisation doivent permettre de définir la probabilité, le nombre et la profondeur du minerai.
int l6 = k + rand.nextInt(16);
int i10 = rand.nextInt(32);
int l12 = l + rand.nextInt(16);
Puis les informations du minerai :
(new WorldGenMinable(Block.oreGold.blockID, 8)).generate(worldObj, rand, l6, i10, l12);
WorldGenMinable qui est en rapport avec la génération des minerais et entre parenthèse le nom de ton bloc et encore la génération.

Donc au final ton morceau de code que tu vas rajouter entre ces lignes doit à peu près resembler à sa :
for(int k5 = 0; k5 < 2; k5++)
{
int l20 = k + rand.nextInt(16);
int i20 = rand.nextInt(32);
int l21 = l + rand.nextInt(16);
(new WorldGenMinable(Block.tonBloc.blockID, 8)).generate(worldObj, rand, l20, i20, l21);
}
NB : pour les variables k5, l20, etc... Tu devras bien en nommer une qui N'EXISTE PAS ENCORE ( ex l20, i20, ...) dans le fichier pour ne pas entrer en conflit avec une autre génération. Et Block.tonBloc.blockID doit bien être remplacé par le nom du bloc que tu veux générer. Aussi si tu veux savoir à quoi servent les variables je te conseil de tester en changeant les valeur entre parenthèse.

J'espère avoir répondu à ta question,
max790
 
for(int k3 = 0; k3 < 2; k3++)
{
int l6 = k + rand.nextInt(16);
int i10 = rand.nextInt(32);
int l12 = l + rand.nextInt(16);
(new WorldGenMinable(Block.oreGold.blockID, 8)).generate(worldObj, rand, l6, i10, l12);
}

le 16 et 32 ne seraient pas les couches ou on le trouve ?
 
essaic a dit:
for(int k3 = 0; k3 < 2; k3++)
{
int l6 = k + rand.nextInt(16);
int i10 = rand.nextInt(32);
int l12 = l + rand.nextInt(16);
(new WorldGenMinable(Block.oreGold.blockID, 8)).generate(worldObj, rand, l6, i10, l12);
}

le 16 et 32 ne seraient pas les couches ou on le trouve ?

l6 et l12 correspondent au chunk, pas besoin de les changer
Pour faire varier la hauteur (depuis la couche 0) il faut changer i10, dans ce cas c'est de la couche 0 à 32
Après je crois que le nombre d'itérations de la boucle règle la rareté et le 8 c'est le nombre de blocs par le filon