Vous générez-vous toujours sur le sable?

Dans une récente vidéo Yogscast, il a été mentionné que vous générez toujours sur le sable dans un nouveau monde, est-ce vrai?

4 Solutions collect form web for “Vous générez-vous toujours sur le sable?”

À partir de 1.8, vous ne générez pas toujours sur le sable. Je crains que je n'ai pas de code source pour publier, mais dans tous les mondes que j'ai faits, je n'ai pas engendré sur le sable.


PLUS TARD:

C'est ma première incursion dans la décompilation, mais si je comprends bien ce droit, le nouveau code de naissance initial ne mentionne pas du sable du tout.

public static void getInitialSpawnLocation() { scheduledTickTreeSet = a(scheduledTickTreeSet, "stat.useItem", 0x1020000, MovementInputFromOptions.m.length, 32000); scheduledTickSet = b(scheduledTickSet, "stat.breakItem", 0x1030000, MovementInputFromOptions.m.length, 32000); field_1019_F = true; setSpawnLocation(); } 

setSpawnLocation est beaucoup plus grand et rempli d'instructions amusantes comme

Iterator iterator1 = OpenGlCapsChecker.a().b().values().iterator();

J'ai donc pensé qu'il était préférable de ne pas l'afficher. Néanmoins, je n'ai pas non plus mentionné le sable. J'ai vérifié World.java et WorldProvider.java. Le code publié par yatima2975 ne semble plus exister.

Note: À partir de 1.8, vous ne générez pas toujours sur le sable.


Oui, vous ne générez toujours pas de sable. Voici quelques extraits de la source (décompilés par MCP ):

De World.java, voici la fonction appelée lors de l'ouverture d'un monde:

 protected void func_25098_c() { findingSpawnPoint = true; int i = 0; byte byte0 = 64; int j; for (j = 0; !worldProvider.canCoordinateBeSpawn(i, j);) { i += rand.nextInt(64) - rand.nextInt(64); j += rand.nextInt(64) - rand.nextInt(64) } worldInfo.setSpawn(i, byte0, j); findingSpawnPoint = false; } 

De WorldProvider, la fonction pertinente s'appelle:

 public boolean canCoordinateBeSpawn(int i, int j) { int k = worldObj.getFirstUncoveredBlock(i, j); return k == Block.sand.blockID; } 

Ainsi, lorsque Minecraft commence à définir le point de propagation, il commence à X / Z 0/0 et déplace le point autour du hasard (avec des étapes d'au plus 64 dans les directions cardinales), jusqu'à ce que le bloc le plus haut au point de ponte soit du sable.

En ce qui concerne la raison pour laquelle il se trouve être près du niveau de la mer (la plupart du temps), je ne suis pas sûr, probablement le sable a plus de chance de générer là-bas.

En utilisant des preuves purement anecdotiques: Oui

Je viens de créer 10 nouveaux mondes et chacun d'eux a été sur le sable (et près de l'eau).

Ceci est probablement dû à l'idée que vous lavez à terre sur une île au début du jeu.

J'ai essayé environ ~ 20 fois, et dans tous les mondes que j'ai engendrés sur le sable et près d'une source d'eau. Cependant, si vous utilisez une graine dans le générateur de graines, comme 3666440496532277820, vous allez engendrer dans un donjon (cobblestone / cobbloss mossy)