Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

I made a bowl food item called fruit_salad, but when eat it, it doesn't restore any hunger or saturation.

 

I have a class that i created to add food items to my mod called FoodBase.java (code for that file below)

 

package com.anthony.testmod.items.food;

import com.anthony.testmod.Main;
import com.anthony.testmod.init.ModItems;
import com.anthony.testmod.util.IHasModel;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemFood;

public class FoodBase extends ItemFood implements IHasModel
{
	public FoodBase(String name, int amount, float saturation, boolean isAnimalFood) 
	/*
	 * amount is shanks filled
	 * saturation is saturation
	 * isAnimalFood determines whether or not you can feed it to dogs
	 * */
	{
		super(amount, saturation, isAnimalFood);
		setUnlocalizedName(name);
		setRegistryName(name);
		setCreativeTab(CreativeTabs.FOOD);
		
		ModItems.ITEMS.add(this);
	}

	@Override
	public void registerModels() 
	{
		Main.proxy.registerItemRenderer(this, 0, "inventory");
	}
}

 

I use this class for adding normal food in my ModItems.java class in the init package. I wanted to add bowl items, that can only stack to one, and return a bowl to the player's inventory when eaten, so i made a new class that extends FoodBase called SoupBase.java (code below)

 

package com.anthony.testmod.items.food;

import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.items.ItemHandlerHelper;

public class SoupBase extends FoodBase
{
	private Item ReturnStack;
	
	public SoupBase(String name, int amount, float saturation, boolean isAnimalFood, Item item) 
	{
		super(name, amount, saturation, isAnimalFood);
		this.setMaxStackSize(1);
		this.ReturnStack = item;
	}
	
	public ItemStack onItemUseFinish(ItemStack stack, World world, EntityLivingBase living) 
	{
		super.onFoodEaten(stack, world, (EntityPlayer)living);
		return new ItemStack(ReturnStack);
	}
}

 

Now that i did that, i added a new SoupBase item called fruit_salad in ModItems.java

 

public static final Item FRUIT_SALAD = new SoupBase("fruit_salad", 11, 6.6f, false, Items.BOWL);

 

Heres the full ModItems.java class:

 

package com.anthony.testmod.init;

import java.util.ArrayList;
import java.util.List;

import com.anthony.testmod.items.ItemBase;
import com.anthony.testmod.items.armor.ArmorBase;
import com.anthony.testmod.items.food.FoodBase;
import com.anthony.testmod.items.food.FoodEffectBase;
import com.anthony.testmod.items.food.SoupBase;
import com.anthony.testmod.items.tools.ToolAxe;
import com.anthony.testmod.items.tools.ToolHoe;
import com.anthony.testmod.items.tools.ToolPickaxe;
import com.anthony.testmod.items.tools.ToolSpade;
import com.anthony.testmod.items.tools.ToolSword;
import com.anthony.testmod.util.Reference;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.init.MobEffects;
import net.minecraft.init.SoundEvents;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.ItemSpade;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import net.minecraftforge.common.util.EnumHelper;

public class ModItems 
{
	
	public static final List<Item> ITEMS = new ArrayList<Item>();
	
	//Materials
	public static final ToolMaterial MATERIAL_AQUAMARINE = EnumHelper.addToolMaterial("material_aquamarine", 3, 2124, 9.0f, 4.0f, 25);
	public static final ArmorMaterial ARMOR_MATERIAL_SUGILITE = EnumHelper.addArmorMaterial("armo r_material_sugilite", Reference.MOD_ID + ":sugilite", 15, new int[] {3, 7, 9, 4} , 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0f);
	
	//add items
	public static final Item SUGILITE = new ItemBase("sugilite");
	public static final Item URANIUM = new ItemBase("uranium");
	public static final Item URANIUM_SUGILITE_FUSION = new ItemBase("uranium_sugilite_fusion");
	public static final Item AQUAMARINE = new ItemBase("aquamarine");
	
	//food
	//public static final Item BLUEBERRY = new FoodBase("blueberry", 3, 4.0f, false); (60*20 is one minute of ppotion effect)
	public static final Item BLUEBERRY = new FoodEffectBase ("blueberry", 3, 2.0f, false, new PotionEffect(MobEffects.SPEED, /*how long its lasts(3 seconds)*/(3*20),/*potion effect lvl*/ 2, /*whether or not it comes from a beacon*/false, /*shows whether or not particles are shown*/false));
	public static final Item POO = new FoodEffectBase ("poo", 3, 0.0f, false, new PotionEffect(MobEffects.HUNGER, (12*20), 100, false, true));
	public static final Item FISH_AND_CHIPS = new FoodBase("fish_and_chips", 10, 12.8f, false);
	public static final Item FRIED_EGG = new FoodBase("fried_egg", 5, 6, false);
	//public static final Item FRUIT_SALAD = new SoupBase("fruit_salad", 11, 6.6f, false), onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player);
	public static final Item FRUIT_SALAD = new SoupBase("fruit_salad", 11, 6.6f, false, Items.BOWL);
	
	//Tools
	public static final ItemSword AQUAMARINE_SWORD = new ToolSword("aquamarine_sword", MATERIAL_AQUAMARINE);
	public static final ItemSpade AQUAMARINE_SHOVEL = new ToolSpade("aquamarine_shovel", MATERIAL_AQUAMARINE);
	public static final ItemPickaxe AQUAMARINE_PICKAXE = new ToolPickaxe("aquamarine_pickaxe", MATERIAL_AQUAMARINE);
	public static final ItemAxe AQUAMARINE_AXE = new ToolAxe("aquamarine_axe", MATERIAL_AQUAMARINE);
	public static final ItemHoe AQUAMARINE_HOE = new ToolHoe("aquamarine_hoe", MATERIAL_AQUAMARINE);
	
	//armor
	public static final Item SUGILITE_HELMET = new ArmorBase("sugilite_helmet", ARMOR_MATERIAL_SUGILITE, 1, EntityEquipmentSlot.HEAD);
	public static final Item SUGILITE_CHESTPLATE = new ArmorBase("sugilite_chestplate", ARMOR_MATERIAL_SUGILITE, 1, EntityEquipmentSlot.CHEST);
	public static final Item SUGILITE_LEGGINGS = new ArmorBase("sugilite_leggings", ARMOR_MATERIAL_SUGILITE, 2, EntityEquipmentSlot.LEGS);
	public static final Item SUGILITE_BOOTS = new ArmorBase("sugilite_boots", ARMOR_MATERIAL_SUGILITE, 1, EntityEquipmentSlot.FEET);
}

 

When I run client and test out the mod, I can eat the fruit salad, it stacks to 1 like i wanted, and it returns a bowl when its eaten. The only problem is that no hunger or saturation is restored when i eat it, for some reason. I'm quite sure what i did wrong, but I think it has something to do with SoupBase.java, as I don't have this problem with the normal class that it extends from.

Does anyone know how to fix this?

Edited by Mango106

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.