Apples left n the ground for too long will eventually go bad

This commit is contained in:
Sollace 2019-03-13 22:54:59 +02:00
parent dc9c409a9b
commit 90635394a3
3 changed files with 50 additions and 0 deletions

View file

@ -14,9 +14,12 @@ import com.minelittlepony.util.collection.Weighted;
import net.minecraft.block.BlockPlanks; import net.minecraft.block.BlockPlanks;
import net.minecraft.client.util.ITooltipFlag; import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemFood; import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
public class ItemApple extends ItemFood implements IEdible { public class ItemApple extends ItemFood implements IEdible {
@ -67,6 +70,41 @@ public class ItemApple extends ItemFood implements IEdible {
} }
} }
@Override
public boolean onEntityItemUpdate(EntityItem item) {
if (!item.isDead && item.ticksExisted > item.lifespan * 0.9) {
if (!item.world.isRemote) {
item.setDead();
EntityItem neu = new EntityItem(item.world);
neu.copyLocationAndAnglesFrom(item);
neu.setItem(new ItemStack(UItems.rotten_apple));
item.world.spawnEntity(neu);
EntityItem copy = new EntityItem(item.world);
copy.copyLocationAndAnglesFrom(item);
copy.setItem(item.getItem());
copy.getItem().shrink(1);
item.world.spawnEntity(copy);
} else {
float bob = MathHelper.sin(((float)item.getAge() + 1) / 10F + item.hoverStart) * 0.1F + 0.1F;
for (int i = 0; i < 3; i++) {
item.world.spawnParticle(EnumParticleTypes.SPELL_MOB, item.posX, item.posY + bob, item.posZ,
item.world.rand.nextGaussian() - 0.5F,
item.world.rand.nextGaussian() - 0.5F,
item.world.rand.nextGaussian() - 0.5F);
}
}
}
return false;
}
@Override @Override
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) { public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
if (this == UItems.red_apple && isInCreativeTab(tab)) { if (this == UItems.red_apple && isInCreativeTab(tab)) {

View file

@ -3,6 +3,7 @@ package com.minelittlepony.unicopia.item;
import com.minelittlepony.unicopia.forgebullshit.IMultiItem; import com.minelittlepony.unicopia.forgebullshit.IMultiItem;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
@ -60,6 +61,11 @@ public class ItemAppleMultiType extends ItemApple implements IMultiItem {
return super.getMetadata(stack); return super.getMetadata(stack);
} }
@Override
public boolean onEntityItemUpdate(EntityItem item) {
return false;
}
@Override @Override
public String getTranslationKey(ItemStack stack) { public String getTranslationKey(ItemStack stack) {
if (getHasSubtypes()) { if (getHasSubtypes()) {

View file

@ -1,6 +1,7 @@
package com.minelittlepony.unicopia.item; package com.minelittlepony.unicopia.item;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
@ -15,6 +16,11 @@ public class ItemRottenApple extends ItemApple {
return 150; return 150;
} }
@Override
public boolean onEntityItemUpdate(EntityItem item) {
return false;
}
@Override @Override
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) { public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) {
if (isInCreativeTab(tab)) { if (isInCreativeTab(tab)) {