MFF

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

    Recette de four avec metadata

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    4 Messages 2 Publieurs 328 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.
    • D Hors-ligne
      Drastic
      dernière édition par

      Bonjour, je veux faire cuire mon block, qui a une métadata, pour qu’il donne un item mais ca ne fonctionne pas.
      J’ai vérifié, avec un autre block (ou item), ca fonctionne bien.

              GameRegistry.addSmelting(new ItemStack(BlockInit.ORE_OVERWORLD, 1, 0), new ItemStack(ItemInit.tnt_ingot), 20.0F);
      

      Comment faire ?
      Merci. :beaming_face_with_smiling_eyes:

      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

        Bonsoir,
        Le deuxième argument d’itemstack c’est la quantité, le metadata c’est le troisième.

        Ici tu mets l’item ayant le metadata 0, donc ça revient à la même chose que s’il n’y a avait pas de metadata.

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

          @robin4002 d’accord mais ca ne marche toujours pas meme si je met 1.
          Pour meiux comprendre, voici la classe du block etc.

          Block

          public class BlockOreMod extends Block implements IHasModel, IMetaName
          {
              public static final PropertyEnum<EnumHandler.EnumType> VARIANT = PropertyEnum.<EnumHandler.EnumType>create("variant", EnumHandler.EnumType.class);
              
              private String name, dimension;
              
              public BlockOreMod(String name, String dimension)
              {
                  super(Material.ROCK);
                  setUnlocalizedName(name);
                  setRegistryName(name);
                  setCreativeTab(Main.GbTab);
                  setHardness(4.0F);
                  setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.TNT));
                  
                  this.name = name;
                  this.dimension = dimension;
                  
                  BlockInit.BLOCKS.add(this);
                  ItemInit.ITEMS.add(new ItemBlockVariants(this).setRegistryName(this.getRegistryName()));
              }
              
              @Override
              public int damageDropped(IBlockState state)
              {
                  return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta();
              }
              
              @Override
              public int getMetaFromState(IBlockState state)
              {
                  return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta();
              }
              
              @Override
              public IBlockState getStateFromMeta(int meta)
              {
                  return this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.byMetadata(meta));
              }
              
              @Override
              public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player)
              {
                  return new ItemStack(Item.getItemFromBlock(this), 1, getMetaFromState(world.getBlockState(pos)));
              }
              
              @Override
              public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items)
              {
                  for(EnumHandler.EnumType variant : EnumHandler.EnumType.values())
                  {
                      items.add(new ItemStack(this, 1, variant.getMeta()));
                  }
              }
              
              @Override
              protected BlockStateContainer createBlockState()
              {
                  return new BlockStateContainer(this, new IProperty[] {VARIANT});
              }
              
              @Override
              public String getSpeciaName(ItemStack stack)
              {
                  return EnumHandler.EnumType.values() [stack.getItemDamage()].getName();
              }
              
              @Override
              public void registerModels()
              {
                  for(int i = 0; i < EnumHandler.EnumType.values().length; i++)
                  {
                      Main.proxy.registerVariantRenderer(Item.getItemFromBlock(this), i, "ore_" + this.dimension + "_" + EnumHandler.EnumType.values()[i].getName(), "inventory");
                  }
              }
              
          }
          

          IHasModel

          public interface IHasModel 
          {
              public void registerModels();
          }
          
          

          IMetaName

          public interface IMetaName
          {
              public String getSpeciaName(ItemStack stack);
          }
          

          EnumHandler

          public class EnumHandler
          {
              public static enum EnumType implements IStringSerializable
              {
                  TNT(0, "tnt_ore"),
                  URANIUM(1, "uranium");
                  
                  private static final EnumType[] META_LOOKUP = new EnumType[values().length];
                  private final int meta;
                  private final String name, unlocializedName;
                  
                  private EnumType(int meta,String name)
                  {
                      this(meta, name, name);
                  }
                  
                  private EnumType(int meta,String name, String unlocializedName)
                  {
                      this.meta = meta;
                      this.name = name;
                      this.unlocializedName = unlocializedName;
                  }
                  
                  @Override
                  public String getName()
                  {
                      return this.name;
                  }
                  
                  public int getMeta()
                  {
                      return this.meta;
                  }
                  
                  public String getUnlocializedName()
                  {
                      return this.unlocializedName;
                  }
                  
                  @Override
                  public String toString()
                  {
                      return this.name;
                  }
                  
                  public static EnumType byMetadata(int meta)
                  {
                      return META_LOOKUP[meta];
                  }
                  
                  static
                  {
                      for(EnumType enumtype : values())
                      {
                          META_LOOKUP[enumtype.getMeta()] = enumtype;
                      }
                  }
              }
          }
          
          1 réponse Dernière réponse Répondre Citer 0
          • D Hors-ligne
            Drastic
            dernière édition par

            up :anxious_face_with_sweat:

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

            MINECRAFT FORGE FRANCE © 2024

            Powered by NodeBB