2 votes

Combien de ticks pour former de la pierre

J'ai joué avec de nouveaux designs pour un générateur de pierres, en testant à quelle vitesse je peux le faire fonctionner.

Cette fois, j'essaye un pendule en redstone / raccourcisseur d'impulsions.

Est-ce que le débit de lave dans l'eau est fixe? Si oui, combien de ticks cela prend-il?

4voto

David Tang Points 39

Jetons un coup d'œil au code source de Minecraft 1.8 :

 public boolean checkForMixing(World paramWorld, BlockPos paramBlockPos, IBlockState paramIBlockState) {
    if (this.blockMaterial == Material.lava) {
      int i = 0;
      for (EnumFacing localEnumFacing : EnumFacing.values()) {
        if ((localEnumFacing != EnumFacing.DOWN) && (paramWorld.getBlockState(paramBlockPos.offset(localEnumFacing)).getBlock().getMaterial() == Material.water)) {
          i = 1;
          break;
        }
      }
      if (i != 0) {
        ??? = (Integer)paramIBlockState.getValue(LEVEL);
        if (((Integer)???).intValue() == 0) {
          paramWorld.setBlockState(paramBlockPos, Blocks.obsidian.getDefaultState());
          triggerMixEffects(paramWorld, paramBlockPos);
          return true; }
        if (((Integer)???).intValue() <= 4) {
          paramWorld.setBlockState(paramBlockPos, Blocks.cobblestone.getDefaultState());
          triggerMixEffects(paramWorld, paramBlockPos);
          return true;
        }
      }
    }

    return false;
  }

Cette fonction détermine si elle doit créer du caillou, de l'obsidienne ou rien du tout. Elle est appelée par deux autres fonctions, à savoir onBlockAdded et onNeighborBlockChange.

  • onBlockAdded semble assez explicite, il est appelé chaque fois qu'un bloc a été ajouté et appelle simplement checkForMixing sur le bloc qui a été ajouté (par exemple en utilisant un seau ou parce qu'il coule et crée un nouveau bloc).
  • onNeighborBlockChange est un peu plus intéressant. Il est appelé chaque fois qu'un bloc voisin a été modifié ou mieux encore à chaque fois qu'il est en cours de tick/mise à jour (il n'y a rien qui doit changer, simplement appeler une mise à jour suffit). Le problème avec votre installation est que l'eau et la lave sont définies sur setTickRandomly(true);, donc vous ne pouvez pas savoir quand elles changent.

Il existe de nombreux générateurs automatiques de (caillou)stone qui comportent une détection de bloc et poussent vers l'avant le bloc généré, donc ils n'ont pas besoin de compter sur une horloge de redstone constante.

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