MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Les dalles

    Planifier Épinglé Verrouillé Déplacé Les blocs
    1.6.x
    36 Messages 13 Publieurs 15.8k Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • war__machineW Hors-ligne
      war__machine
      dernière édition par robin4002

      voila le code du Itemblock (edit:jai formatée )

      package modTutoriel.common;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemBlock;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.Icon;
      import net.minecraft.world.World;
      
      public class ItemBlockTutorialSlabv0 extends ItemBlock
      
      {
      
          private final boolean isFullBlock;
          private final Block theHalfSlab;
          private final Block doubleSlab;
      
          public ItemBlockTutorialSlabv0(int id)
          {
              super(id);
              this.theHalfSlab = modTutoriel.v0SingleSlab;
              this.doubleSlab = modTutoriel.v0DoubleSlab;
              if(id - 256 == modTutoriel.v0DoubleSlab.blockID)
              {
                  this.isFullBlock = true;
              }
              else
              {
                  this.isFullBlock = false;
              }
              this.setMaxDamage(0);
              this.setHasSubtypes(true);
          }
      
          @SideOnly(Side.CLIENT)
          public Icon getIconFromDamage(int metadata)
          {
              return Block.blocksList[this.itemID].getIcon(2, metadata);
          }
      
          public int getMetadata(int metadata)
          {
              return metadata;
          }
      
          public String getUnlocalizedName(ItemStack stack)
          {
              return ((BlockSlabv0)theHalfSlab).getFullSlabName(stack.getItemDamage());
          }
      
      public boolean onItemUse(ItemStack stack, EntityPlayer player, World world,
      int x, int y, int z, int side, float par8, float par9, float par10) {
      if (this.isFullBlock) {
      return super.onItemUse(stack, player, world, x, y, z, side, par8,
      par9, par10);
      } else if (stack.stackSize == 0) {
      return false;
      } else if (!player.canPlayerEdit(x, y, z, side, stack)) {
      return false;
      } else {
      int i1 = world.getBlockId(x, y, z);
      int j1 = world.getBlockMetadata(x, y, z);
      int k1 = j1 & 7;
      boolean flag = (j1 & 8) != 0;
      
      if ((side == 1 && !flag || side == 0 && flag)
      && i1 == this.theHalfSlab.blockID
      && k1 == stack.getItemDamage()) {
      if (world.checkNoEntityCollision(this.doubleSlab
      .getCollisionBoundingBoxFromPool(world, x, y, z))
      && world.setBlock(x, y, z, this.doubleSlab.blockID, k1,
      3)) {
      world.playSoundEffect(
      (double) ((float) x + 0.5F),
      (double) ((float) y + 0.5F),
      (double) ((float) z + 0.5F),
      this.doubleSlab.stepSound.getPlaceSound(),
      (this.doubleSlab.stepSound.getVolume() + 1.0F) / 2.0F,
      this.doubleSlab.stepSound.getPitch() * 0.8F);
      –stack.stackSize;
      }
      return true;
      } else {
      return this.placeDoubleSlabFromTop(stack, player, world, x, y,
      z, side) ? true : super.onItemUse(stack, player, world,
      x, y, z, side, par8, par9, par10);
      }
      }
      }
      
          @SideOnly(Side.CLIENT)
          public boolean canPlaceItemBlockOnSide(World world, int x, int y, int z, int side, EntityPlayer player, ItemStack stack)
          {
              int i1 = x;
              int j1 = y;
              int k1 = z;
              int id = world.getBlockId(x, y, z);
              int meta = world.getBlockMetadata(x, y, z);
              int j2 = meta & 7;
              boolean flag = (meta & 8) != 0;
      
              if((side == 1 && !flag || side == 0 && flag) && id == this.theHalfSlab.blockID && j2 == stack.getItemDamage())
              {
                  return true;
              }
              else
              {
                  if(side == 0)
                  {
                      --y;
                  }
      
                  if(side == 1)
                  {
                      ++y;
                  }
      
                  if(side == 2)
                  {
                      --z;
                  }
      
                  if(side == 3)
                  {
                      ++z;
                  }
      
                  if(side == 4)
                  {
                      --x;
                  }
      
                  if(side == 5)
                  {
                      ++x;
                  }
      
                  id = world.getBlockId(x, y, z);
                  meta = world.getBlockMetadata(x, y, z);
                  j2 = meta & 7;
                  flag = (meta & 8) != 0;
                  return id == this.theHalfSlab.blockID && j2 == stack.getItemDamage() ? true : super.canPlaceItemBlockOnSide(world, i1, j1, k1, side, player, stack);
              }
          }
      
          private boolean placeDoubleSlabFromTop(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side)
          {
              if(side == 0)
              {
                  --y;
              }
      
              if(side == 1)
              {
                  ++y;
              }
      
              if(side == 2)
              {
                  --z;
              }
      
              if(side == 3)
              {
                  ++z;
              }
      
              if(side == 4)
              {
                  --x;
              }
      
              if(side == 5)
              {
                  ++x;
              }
      
              int i1 = world.getBlockId(x, y, z);
              int j1 = world.getBlockMetadata(x, y, z);
              int k1 = j1 & 7;
      
              if(i1 == this.theHalfSlab.blockID && k1 == stack.getItemDamage())
              {
                  if(world.checkNoEntityCollision(this.doubleSlab.getCollisionBoundingBoxFromPool(world, x, y, z)) && world.setBlock(x, y, z, this.doubleSlab.blockID, k1, 3))
                  {
                      world.playSoundEffect((double)((float)x + 0.5F), (double)((float)y + 0.5F), (double)((float)z + 0.5F), this.doubleSlab.stepSound.getPlaceSound(), (this.doubleSlab.stepSound.getVolume() + 1.0F) / 2.0F, this.doubleSlab.stepSound.getPitch() * 0.8F);
                      --stack.stackSize;
                  }
      
                  return true;
              }
              else
              {
                  return false;
              }
          }
      
          public boolean isOpaqueCube()
          {
              return false;
          }
      
          public boolean renderAsNormalBlock()
          {
              return false;
          }
      }
      

      1 réponse Dernière réponse Répondre Citer 0
      • GuguG Hors-ligne
        Gugu
        dernière édition par

        S’il te plaît, fait juste CTRL+Maj+F dans ton code, la c’est pas formaté, pas envie de le lire presque.

        "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
        ― Jordan B. Peterson

        1 réponse Dernière réponse Répondre Citer 0
        • D Hors-ligne
          dragono123
          dernière édition par

          Je tiens à dire que nous ne sommes pas obliger de créer une nouvelle classe item block:
          Mettez:

          public static BlockHalfSlab singleSlab, doubleSlab;
          

          A la place de:

          public static Block singleSlab, doubleSlab;
          

          Et rajouter dans la partie Post Init:

          Item.itemsList[singleSlab.blockID] = new ItemSlab(singleSlab.blockID-256,
          (BlockHalfSlab)singleSlab, (BlockHalfSlab)doubleSlab, false);
          

          Et à la place de:

          GameRegistry.registerBlock(singleSlab, ItemBlockSlab.class "doubleSlab");
          GameRegistry.registerBlock(doubleSlab, ItemBlockSlab.class "doubleSlab");
          

          Mettez tout simplement:

          GameRegistry.registerBlock(singleSlab, "singleSlab");
          GameRegistry.registerBlock(doubleSlab, "doubleSlab");
          
          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Oui, mais c’est une méthode vanilla, c’est pas bon pour l’itemTracker de FML. Logiquement dans les logs tu devrais avoir FML qui râle.

            1 réponse Dernière réponse Répondre Citer 0
            • SnykerS Hors-ligne
              Snyker
              dernière édition par

              Possible de le up en 1.7.x ? :3

              Aucune signature n'est disponible pour une barre chocolatée.

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                Quand j’aurai le temps, donc après le bac.

                1 réponse Dernière réponse Répondre Citer 0
                • ph1823P Hors-ligne
                  ph1823
                  dernière édition par

                  Je sais qu’on va dire que je répète la même chose que les autre mais vue que je pense que le bac est passer (a part si t’était en 1er et non terminal) possible de le UP en 1.7.10

                  Cordialement, le membre ayant le pseudo "ph1823"

                  Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                  Mon Twitter : https://twitter.com/ph1823
                  Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

                  1 réponse Dernière réponse Répondre Citer 0
                  • DeletedD Hors-ligne
                    Deleted
                    dernière édition par

                    Je peux te fournir le code si tu le souhaites via skype 😃

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002R Hors-ligne
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                      dernière édition par

                      Whaaa, faut que j’arrête de promettre des choses que je ne peux pas faire.
                      Sinon : http://www.minecraftforgefrance.fr/showthread.php?tid=788#classe3

                      1 réponse Dernière réponse Répondre Citer 0
                      • Nexsus_350N Hors-ligne
                        Nexsus_350
                        dernière édition par

                        ça marche en 1.7.10 ?

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R Hors-ligne
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                          dernière édition par

                          En adaptant tout ce qui concerne les id de bloc, oui.

                          1 réponse Dernière réponse Répondre Citer 0
                          • Nexsus_350N Hors-ligne
                            Nexsus_350
                            dernière édition par

                            @‘robin4002’:

                            En adaptant tout ce qui concerne les id de bloc, oui.

                            J’ai réussi à faire les dalles

                            1 réponse Dernière réponse Répondre Citer 0
                            • K Hors-ligne
                              kylian-1452
                              dernière édition par

                              Hello,
                              C’est encore moi mais je vais pas être trop chiant cette fois… Concrètement, si je veux faire plus de 8 dalles, je dois avoir plusieurs class d’itemblockslab et de blockslab ou bien je n’ai pas très bien compris ?

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                C’est ça, il faudra plusieurs classes de blocs.

                                1 réponse Dernière réponse Répondre Citer 1
                                • K Hors-ligne
                                  kylian-1452
                                  dernière édition par

                                  Simple et super efficace comme tuto avec une réponse précise, merci !

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • 1
                                  • 2
                                  • 2 / 2
                                  • Premier message
                                    Dernier message
                                  Design by Woryk
                                  ContactMentions Légales

                                  MINECRAFT FORGE FRANCE © 2024

                                  Powered by NodeBB