Unicopia/src/main/java/com/minelittlepony/unicopia/item/AppleItem.java

75 lines
2.6 KiB
Java
Raw Normal View History

package com.minelittlepony.unicopia.item;
2018-09-12 01:29:49 +02:00
import java.util.List;
2021-08-04 15:38:03 +02:00
import org.jetbrains.annotations.Nullable;
2022-01-04 23:43:07 +01:00
import com.minelittlepony.unicopia.USounds;
import com.minelittlepony.unicopia.entity.IItemEntity;
import com.minelittlepony.unicopia.entity.ItemImpl;
import com.minelittlepony.unicopia.item.toxin.Toxicity;
2020-01-16 16:46:24 +01:00
import net.minecraft.client.item.TooltipContext;
2021-08-04 15:38:03 +02:00
import net.minecraft.entity.Entity.RemovalReason;
2020-01-16 16:46:24 +01:00
import net.minecraft.entity.EntityType;
import net.minecraft.entity.ItemEntity;
import net.minecraft.item.Item;
2018-09-12 01:29:49 +02:00
import net.minecraft.item.ItemStack;
2020-01-16 16:46:24 +01:00
import net.minecraft.particle.ParticleTypes;
import net.minecraft.text.Text;
2020-01-27 11:05:22 +01:00
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
2018-09-12 01:29:49 +02:00
public class AppleItem extends Item implements ItemImpl.TickableItem {
2019-02-07 10:46:59 +01:00
public AppleItem(Settings settings) {
super(settings);
2019-02-06 21:24:22 +01:00
}
2018-09-12 01:29:49 +02:00
@Override
2020-01-27 11:05:22 +01:00
public ActionResult onGroundTick(IItemEntity item) {
ItemEntity entity = item.get().getMaster();
2021-08-04 15:38:03 +02:00
if (!entity.isRemoved() && item.getPickupDelay() == 0 && item.getAge() > 2030 && entity.world.random.nextInt(150) < 10) {
2020-01-27 11:05:22 +01:00
if (!entity.world.isClient) {
2021-08-04 15:38:03 +02:00
entity.remove(RemovalReason.KILLED);
2020-01-27 11:05:22 +01:00
ItemEntity neu = EntityType.ITEM.create(entity.world);
neu.copyPositionAndRotation(entity);
2020-04-24 15:23:36 +02:00
neu.setStack(new ItemStack(UItems.ROTTEN_APPLE));
2020-01-27 11:05:22 +01:00
entity.world.spawnEntity(neu);
2020-01-27 11:05:22 +01:00
ItemEntity copy = EntityType.ITEM.create(entity.world);
copy.copyPositionAndRotation(entity);
copy.setStack(entity.getStack());
copy.getStack().decrement(1);
2020-01-27 11:05:22 +01:00
entity.world.spawnEntity(copy);
}
2021-08-04 15:38:03 +02:00
float bob = MathHelper.sin(((float)item.getAge() + 1) / 10F + entity.uniqueOffset) * 0.1F + 0.1F;
for (int i = 0; i < 3; i++) {
entity.world.addParticle(ParticleTypes.AMBIENT_ENTITY_EFFECT, entity.getX(), entity.getY() + bob, entity.getZ(),
entity.world.random.nextGaussian() - 0.5F,
entity.world.random.nextGaussian() - 0.5F,
entity.world.random.nextGaussian() - 0.5F);
}
2022-01-04 23:43:07 +01:00
entity.playSound(USounds.ITEM_APPLE_ROT, 0.5F, 1.5F);
2020-01-27 11:05:22 +01:00
}
2020-01-27 11:05:22 +01:00
return ActionResult.PASS;
}
2019-02-07 11:14:41 +01:00
@Override
2020-01-16 16:46:24 +01:00
public void appendTooltip(ItemStack stack, @Nullable World worldIn, List<Text> tooltip, TooltipContext context) {
2020-01-27 13:47:14 +01:00
tooltip.add(getToxicity(stack).getTooltip());
}
2020-01-27 13:47:14 +01:00
public Toxicity getToxicity(ItemStack stack) {
return Toxicity.SAFE;
}
2018-09-12 01:29:49 +02:00
}