Крафт с метадатой

Версия Minecraft
1.6.4
381
6
20
Сделал предмет с метадатой и несколько крафтов. Дальше проще на примере:
Допустим, кладу в верстак Траву 1 и ступку. На выходе измельченная  Трава 1, ступка осталась. Все отлично,. А теперь кладу Траву 2. И тут уже начинается самое интересное: если вытаскивать крафт мышкой - будет измельченная Трава 2. А если с зажатым шифтом - то она приплюсуется в стак Травы 1. Ничего подобного не нашел, подскажите пожалуйста, в чем дело?

По необходимости, вот код:
Код:
public class ItemChoppedGrass extends Item { 
 
 public static final String[] metadata = new String[] {
 
 "choppedWildBerry",
 "choppedMeadowBerry"
 
 }; 
 
 public ItemChoppedGrass(int id) {
 
 super(id);
GameRegistry.registerItem(this, "choppedGrass", GothicInfo.MODID);
 
 }
 
 @SideOnly(Side.CLIENT)
 public void getSubItems(int id, CreativeTabs table, List list) {
 
 for (int j = 0; j < metadata.length; ++j) {
 
 list.add(new ItemStack(id, 1, j));
 
 }
 
 }
 
 public String getUnlocalizedName(ItemStack is) {
 
 int metadata = is.getItemDamage();
 
 if (metadata >= 0 && metadata < this.metadata.length) {
 
 return this.metadata[metadata];
 
 }
 
 return super.getUnlocalizedName();
 
 }

 @Override
 public void registerIcons(IconRegister ir) {
 
 itemIcon = ir.registerIcon(GothicInfo.MODID.toLowerCase() + ":choppedGrass");
 
 }
 
}
Код:
GameRegistry.addShapelessRecipe(new ItemStack(ItemNormal.choppedGrass, 2, 0), new Object[] {ItemNormal.foodWildBerry, ItemNormal.pounder}); 

GameRegistry.addShapelessRecipe(new ItemStack(ItemNormal.choppedGrass, 2, 1), new Object[] {ItemNormal.foodMeadowBerry, ItemNormal.pounder});
 
381
6
20
RonyC написал(а):
У тимахи был туториал по метадатам, у него вроде норм файл. И в 1.6.4 не надо/обязательно регистрировать предмет.

Так то же самое в туториале. Да и вроде, ничего страшного от регистрации придметов, вроде, и не произойдет...
 
769
1
42
MrUser написал(а):
RonyC написал(а):
У тимахи был туториал по метадатам, у него вроде норм файл. И в 1.6.4 не надо/обязательно регистрировать предмет.

Так то же самое в туториале. Да и вроде, ничего страшного от регистрации придметов, вроде, и не произойдет...
Я не говорю что это страшно. Просто это не обязательно в 1.6.4


Мой файл так выглядит:
Код:
/**
    Vacuum Horizon[1.6.4]
    Addon for Galacticraft 2 by @RonFall
 */

package vacuum.core.Items;

import java.util.List;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import vacuum.core.VacuumHorizon;

public class CoreCrystal extends Item {

   public static final String[] names = new String[]{
   "Chrysoberyl", 
   "MethaneIce"
   };
   protected Icon[] icons;


   public CoreCrystal(int par1) {
      super(par1);
      this.icons = new Icon[names.length];
      this.setHasSubtypes(true);
   }

   public CreativeTabs getCreativeTab() {
      return VacuumHorizon.Items;
   }

   @SideOnly(Side.CLIENT)
   public void registerIcons(IconRegister iconRegister) {
      int i = 0;
      String[] arr$ = names;
      int len$ = arr$.length;

      for(int i$ = 0; i$ < len$; ++i$) {
         String name = arr$[i$];
         this.icons[i++] = iconRegister.registerIcon("horizon:crystal/" + name);
      }

   }

   public String getUnlocalizedName(ItemStack itemStack) {
      return "item." + names[itemStack.getItemDamage()];
   }

   public Icon getIconFromDamage(int damage) {
      return this.icons.length > damage?this.icons[damage]:super.getIconFromDamage(damage);
   }

   public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) {
      for(int i = 0; i < names.length; ++i) {
         par3List.add(new ItemStack(par1, 1, i));
      }

   }

   public int getMetadata(int par1) {
      return par1;
   }

}
Может потому что у тебя нет getMetadata
 
Сверху