я захотел сделать предмет типа "бесконечная еда"...что-то попытался...но еда не работает...но сейчас не об этом...с едой как-нибудь потом разберусь...суть моего вопроса в том что анимации поедания даже нету при нажатии на пкм...
Код:
искал в интернете...там советовали сделать player.setItemInUse(stack); но это был давний пост,на версию 1.6.2 и в 1.12 нет такого метода как setItemInUse()...
Код:
Java:
public static class InfiniFood extends Item {
public static final String[] ITEM_IN_USE_COUNT = new String[]{"itemInUseCount", "field_71072_f", "g"};
//public JsonObject json;
//public JsonElement je;
//public BufferedReader reader;
//public InputStream in;
//public ResourceLocation loc;
//public Gson gson;
public InfiniFood() {
//try {
// gson = new Gson();
// loc = new ResourceLocation("modid:items.json");
// in = Minecraft.getMinecraft().getResourceManager().getResource(loc).getInputStream();
// reader = new BufferedReader(new InputStreamReader(in));
// je = gson.fromJson(reader, JsonElement.class);
// json = je.getAsJsonObject().getAsJsonObject("infinifood");
//} catch(Exception e) {}
this.setMaxDamage(0);
this.setMaxStackSize(1);
setRegistryName("infinifood");
setUnlocalizedName("InfiniFood");
setCreativeTab(CreativeTabs.FOOD);
//if(json!=null) {
// this.setUnlocalizedName(json.get("name").toString());
//} else {
//this.setUnlocalizedName("NAME NOT FOUND");
//}
}
public int getDamage(final ItemStack stack) {
return 32;
}
@Override
public EnumAction getItemUseAction(final ItemStack stack) {
return EnumAction.EAT;
}
public void addInformation(ItemStack par1ItemStack, List par2List) {
//int i = 0;
//if(json!=null) {
// while(json.getAsJsonObject("lore").has(String.valueOf(i))) {
// par2List.add(json.getAsJsonObject("lore").get(String.valueOf(i)).toString());
// }
//}
}
public ItemStack onItemUseFinish(final ItemStack itemstack, final World world, final EntityPlayer player) {
if (player.canEat(false)) {
//player.func_71008_a(itemstack, this.getDamage(itemstack));
}
return itemstack;
}
public void onUsingTick(final ItemStack stack, final EntityPlayer player, final int count) {
super.onUsingTick(stack, player, count);
final FoodStats foodstat = player.getFoodStats();
if (count <= 22 & count % 2 == 0) {
foodstat.addStats(1, 1.0f);
}
if (count == 5 && player.canEat(false)) {
ReflectionHelper.setPrivateValue((Class) EntityPlayer.class, (Object) player, (Object) 20, InfiniFood.ITEM_IN_USE_COUNT);
}
}
public EnumRarity getRarity(final ItemStack itemstack) {
//if(json!=null) {
// return EnumRarity.valueOf(json.getAsJsonObject("rarity").toString());
//} else {
return EnumRarity.UNCOMMON;
//}
}
}
искал в интернете...там советовали сделать player.setItemInUse(stack); но это был давний пост,на версию 1.6.2 и в 1.12 нет такого метода как setItemInUse()...