• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved CD et Metadata

    1.7.x
    1.7.x
    2
    4
    1064
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      Namilowarus last edited by

      Salut,
      J’ai créer des items en metadata, ce sont des disques. Mais ils jouent tous la même musique, j’aimerais leurs assigner une musique chacun.
      J’ai bien enregistrer toutes les musiques dans le Json, il est valide.

      La classe des disques:

      package com.namilowarus.phase.item;
      
      import java.util.List;
      
      import javax.swing.Icon;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemRecord;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IIcon;
      import net.minecraft.util.ResourceLocation;
      import net.minecraft.util.StatCollector;
      
      public class ItemCDMetadata extends ItemRecord{
      
      private final static String[] type = new String[]{"cd1", "cd2", "cd3", "cd4", "cd5", "cd6", "cd7", "cd8", "cd9", "cd10", "cd11", "cd12", "cd13", "cd14", "cd15"};
      private IIcon[] IconArray;
      
      public ItemCDMetadata(int id, String name)
      {
      super(name);
      this.setHasSubtypes(true);
      }
      
      public int getMetadata(int metadata)
      {
      return metadata;
      }
      
      public String getUnlocalizedName(ItemStack stack)
         {
             int metadata = stack.getItemDamage();
             if(metadata > type.length || metadata < 0)
             {
                 metadata = 0;
             }
             return super.getUnlocalizedName() + "." + type[metadata];
         }
      
      public void registerIcons(IIconRegister iconregister)
         {
             IconArray = new IIcon[type.length];
             for(int i = 0; i < type.length; i++)
             {
                 IconArray* = iconregister.registerIcon("pm:cds/" + type*);
             }
         }
      
      @SideOnly(Side.CLIENT)
      public void getSubItems(Item Item, CreativeTabs creativeTabs, List list)
      {
      for(int metadata = 0; metadata < type.length; metadata++)
      list.add(new ItemStack(Item, 1, metadata));
      }
      
         @SideOnly(Side.CLIENT)
         public IIcon getIconFromDamage(int metadata)
         {
             return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0];
         }
      
         @Override
         @SideOnly(Side.CLIENT)
         public String getRecordNameLocal()
         {
      return StatCollector.translateToLocal("item.record." + this.recordName);
         }
      
         public ResourceLocation getRecordResource(String name)
         {
             return new ResourceLocation("pm:cd1");
         }
      }
      
      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        Ce n’est pas possible car la fonction getRecordResource n’a pas ItemStack en paramètre. Il faudrait modifier la façon dont Minecraft gère les disques pour le faire.

        1 Reply Last reply Reply Quote 0
        • N
          Namilowarus last edited by

          Ha, mince.
          Je suis donc obligé de faire plein de cd séparement si je comprends bien ?

          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

            Oui.

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB