21 votes

Vous frayez toujours sur le sable ?

Dans une vidéo récente du Yogscast, il a été mentionné que l'on frayait toujours sur du sable dans un nouveau monde, est-ce vrai ?

27voto

Trufa Points 151

Note : Depuis la version 1.8, vous n'apparaissez pas toujours sur du sable.


Oui, vous frayez toujours sur du sable. Voici quelques extraits du source (décompilé par MCP ) :

Dans World.java, voici la fonction qui est 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;
}

À partir de WorldProvider, la fonction correspondante est appelée :

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 spawn, il commence à X/Z 0/0 et déplace le point de façon aléatoire (avec des étapes d'au plus 64 dans les directions cardinales), jusqu'à ce que le bloc le plus élevé au point de spawn soit du sable.

Quant à savoir pourquoi il se trouve près du niveau de la mer (la plupart du temps), je n'en suis pas sûr, probablement que le sable a plus de chance de s'y former.

11voto

John the Green Points 17146

Depuis la version 1.8, vous pouvez no toujours frayer sur le sable. J'ai peur de ne pas avoir de code source à poster, mais dans tous les mondes que j'ai créés, je n'ai pas frayé sur le sable.


PLUS TARD :

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

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 de déclarations amusantes comme

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

J'ai donc pensé qu'il valait mieux ne pas le poster. Néanmoins, je n'y ai vu aucune mention de sable non plus. J'ai vérifié World.java et WorldProvider.java. Le code posté par yatima2975 ne semble plus exister.

8voto

Rik Heywood Points 9034

En utilisant des preuves purement anecdotiques : Oui

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

Cela est probablement dû au fait que vous vous échouez sur une île au début du jeu.

4voto

J'ai essayé environ 20 fois, et dans tous ces mondes, j'ai frayé sur du sable, et près d'une source d'eau. Cependant, si vous utilisez une graine dans le générateur de graines telle que 3666440496532277820, vous allez frayer dans un donjon (pavé/ pavé mousseux).

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X