package openblocks.common;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.item.ItemExpireEvent;
import openblocks.common.item.ItemLuggage;
import openmods.utils.EntityUtils;
public class LuggageDropHandler {
private static boolean shouldPreventDespawn(EntityItem entity) {
ItemStack stack = entity.getEntityItem();
if (stack == null) return false;
return stack.getItem() instanceof ItemLuggage && stack.hasTagCompound();
}
@SubscribeEvent
public void onItemDrop(EntityJoinWorldEvent evt) {
final Entity entity = evt.entity;
if (entity instanceof EntityItem && shouldPreventDespawn((EntityItem)entity)) {
EntityUtils.setEntityInvulnerable(entity, true);
}
}
@SubscribeEvent
public void onItemExpire(ItemExpireEvent evt) {
if (shouldPreventDespawn(evt.entityItem)) {
evt.extraLife += 0x12F58BF;
evt.setCanceled(true);
}
}
}