Замена итема при падении в воду

Версия Minecraft
1.6.4
390
7
27
Что-то не нашел ничего подходящего, так что спрошу: как можно сделать так, чтобы итем при падении в воду менялся на другой? Можно, в принципе, через метадату, но как?
Благодарю за ответы.
 
Решение
Тут вроде приветствуется выкладывать решение своего вопроса, так что на всякий выложу. Для себя делал так:
Код:
public class ItemSteel extends Item {

	public static final String[] metadata = new String[] {
		
		"crudeSteel",
		"glowingSteel"
		
	};	 
	
	public ItemSteel(int id) {
		
		super(id);
		setCreativeTab(GothicMod.GothicTab);
		this.setUnlocalizedName("steel");
		this.setHasSubtypes(true);
		GameRegistry.registerItem(this, "steel", GothicInfo.MODID);

	}
	
	public int getMetadata(int metadata) {
	     
		return metadata;
	  
	}
	
	public String getUnlocalizedName(ItemStack is) {
		
		int metadata = is.getItemDamage();
		
		if (metadata >= 0 && metadata < this.metadata.length) {
			
			return this.metadata[metadata];
		
		}
		
		return...
7,099
324
1,510
AE2, глянь, там есть крафты в мире
 
390
7
27
Тут вроде приветствуется выкладывать решение своего вопроса, так что на всякий выложу. Для себя делал так:
Код:
public class ItemSteel extends Item {

	public static final String[] metadata = new String[] {
		
		"crudeSteel",
		"glowingSteel"
		
	};	 
	
	public ItemSteel(int id) {
		
		super(id);
		setCreativeTab(GothicMod.GothicTab);
		this.setUnlocalizedName("steel");
		this.setHasSubtypes(true);
		GameRegistry.registerItem(this, "steel", GothicInfo.MODID);

	}
	
	public int getMetadata(int metadata) {
	     
		return metadata;
	  
	}
	
	public String getUnlocalizedName(ItemStack is) {
		
		int metadata = is.getItemDamage();
		
		if (metadata >= 0 && metadata < this.metadata.length) {
			
			return this.metadata[metadata];
		
		}
		
		return super.getUnlocalizedName();
	}

	public boolean onEntityItemUpdate(EntityItem entityItem) {
		
		ItemStack itemStack = entityItem.getEntityItem();

		if(!entityItem.worldObj.isRemote) {
			
			if(entityItem.isInsideOfMaterial(Material.water)){
				
				itemStack.setItemDamage(0);
				
			}
			
		}

        return false;
        
    }

	@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));

	}
	
}
 
Сверху