package flaxbeard.cyberware.common.item; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.MobEffects; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import flaxbeard.cyberware.api.CyberwareAPI; import flaxbeard.cyberware.api.CyberwareUpdateEvent; import flaxbeard.cyberware.common.handler.EssentialsMissingHandler; import flaxbeard.cyberware.common.lib.LibConstants; public class ItemCyberheart extends ItemCyberware { public ItemCyberheart(String name, EnumSlot slot) { super(name, slot); MinecraftForge.EVENT_BUS.register(this); } @Override public boolean isEssential(ItemStack stack) { return true; } @Override public boolean isIncompatible(ItemStack stack, ItemStack other) { return CyberwareAPI.getCyberware(other).isEssential(other); } @SubscribeEvent(priority=EventPriority.HIGHEST) public void power(CyberwareUpdateEvent event) { EntityLivingBase e = event.getEntityLiving(); ItemStack test = new ItemStack(this); if (e.ticksExisted % 20 == 0 && CyberwareAPI.isCyberwareInstalled(e, test)) { if (!CyberwareAPI.getCapability(e).usePower(test, getPowerConsumption(test))) { e.attackEntityFrom(EssentialsMissingHandler.heartless, Integer.MAX_VALUE); } } if (CyberwareAPI.isCyberwareInstalled(e, new ItemStack(this))) { e.removePotionEffect(MobEffects.WEAKNESS); } } @Override public int getPowerConsumption(ItemStack stack) { return LibConstants.HEART_CONSUMPTION; } }