Search in sources :

Example 1 with ItemPackSacrifice

use of WayofTime.bloodmagic.item.gear.ItemPackSacrifice in project BloodMagic by WayofTime.

the class GenericHandler method onEntityHurt.

@SubscribeEvent
public static void onEntityHurt(LivingHurtEvent event) {
    if (event.getEntity().getEntityWorld().isRemote)
        return;
    if (event.getSource().getTrueSource() instanceof EntityPlayer && !PlayerHelper.isFakePlayer((EntityPlayer) event.getSource().getTrueSource())) {
        EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
        if (!player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).isEmpty() && player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem() instanceof ItemPackSacrifice) {
            ItemPackSacrifice pack = (ItemPackSacrifice) player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem();
            boolean shouldSyphon = pack.getStoredLP(player.getItemStackFromSlot(EntityEquipmentSlot.CHEST)) < pack.CAPACITY;
            float damageDone = event.getEntityLiving().getHealth() < event.getAmount() ? event.getAmount() - event.getEntityLiving().getHealth() : event.getAmount();
            int totalLP = Math.round(damageDone * ConfigHandler.values.coatOfArmsConversion);
            if (shouldSyphon)
                ItemHelper.LPContainer.addLPToItem(player.getItemStackFromSlot(EntityEquipmentSlot.CHEST), totalLP, pack.CAPACITY);
        }
        if (LivingArmour.hasFullSet(player)) {
            ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
            LivingArmour armour = ItemLivingArmour.getLivingArmour(chestStack);
            if (armour != null) {
                LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(BloodMagic.MODID + ".upgrade.battleHunger", chestStack);
                if (upgrade instanceof LivingArmourUpgradeBattleHungry) {
                    ((LivingArmourUpgradeBattleHungry) upgrade).resetTimer();
                }
            }
        }
    }
}
Also used : LivingArmourUpgradeBattleHungry(WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeBattleHungry) ItemLivingArmour(WayofTime.bloodmagic.item.armour.ItemLivingArmour) LivingArmour(WayofTime.bloodmagic.livingArmour.LivingArmour) LivingArmourUpgrade(WayofTime.bloodmagic.livingArmour.LivingArmourUpgrade) EntityPlayer(net.minecraft.entity.player.EntityPlayer) ItemStack(net.minecraft.item.ItemStack) ItemPackSacrifice(WayofTime.bloodmagic.item.gear.ItemPackSacrifice) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 2 with ItemPackSacrifice

use of WayofTime.bloodmagic.item.gear.ItemPackSacrifice in project BloodMagic by WayofTime.

the class RegistrarBloodMagicItems method registerItems.

@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
    items = Lists.newArrayList();
    RegistrarBloodMagicBlocks.blocks.stream().filter(block -> block instanceof IBMBlock && ((IBMBlock) block).getItem() != null).forEach(block -> {
        IBMBlock bmBlock = (IBMBlock) block;
        items.add(bmBlock.getItem().setRegistryName(block.getRegistryName()));
    });
    items.addAll(Lists.newArrayList(new ItemBloodOrb().setRegistryName("blood_orb"), new ItemActivationCrystal().setRegistryName("activation_crystal"), new ItemSlate().setRegistryName("slate"), new ItemInscriptionTool().setRegistryName("inscription_tool"), new ItemSacrificialDagger().setRegistryName("sacrificial_dagger"), new ItemPackSacrifice().setRegistryName("pack_sacrifice"), new ItemPackSelfSacrifice().setRegistryName("pack_self_sacrifice"), new ItemDaggerOfSacrifice().setRegistryName("dagger_of_sacrifice"), new ItemRitualDiviner().setRegistryName("ritual_diviner"), new ItemRitualReader().setRegistryName("ritual_reader"), new ItemLavaCrystal().setRegistryName("lava_crystal"), new ItemBoundSword().setRegistryName("bound_sword"), new ItemBoundPickaxe().setRegistryName("bound_pickaxe"), new ItemBoundAxe().setRegistryName("bound_axe"), new ItemBoundShovel().setRegistryName("bound_shovel"), new ItemSigilDivination(true).setRegistryName("sigil_divination"), new ItemSigilAir().setRegistryName("sigil_air"), new ItemSigilWater().setRegistryName("sigil_water"), new ItemSigilLava().setRegistryName("sigil_lava"), new ItemSigilVoid().setRegistryName("sigil_void"), new ItemSigilGreenGrove().setRegistryName("sigil_green_grove"), new ItemSigilBloodLight().setRegistryName("sigil_blood_light"), new ItemSigilElementalAffinity().setRegistryName("sigil_elemental_affinity"), new ItemSigilMagnetism().setRegistryName("sigil_magnetism"), new ItemSigilSuppression().setRegistryName("sigil_suppression"), new ItemSigilHaste().setRegistryName("sigil_haste"), new ItemSigilFastMiner().setRegistryName("sigil_fast_miner"), new ItemSigilDivination(false).setRegistryName("sigil_seer"), new ItemSigilPhantomBridge().setRegistryName("sigil_phantom_bridge"), new ItemSigilWhirlwind().setRegistryName("sigil_whirlwind"), new ItemSigilCompression().setRegistryName("sigil_compression"), new ItemSigilEnderSeverance().setRegistryName("sigil_ender_severance"), new ItemSigilHolding().setRegistryName("sigil_holding"), new ItemSigilTeleposition().setRegistryName("sigil_teleposition"), new ItemSigilTransposition().setRegistryName("sigil_transposition"), new ItemSigilClaw().setRegistryName("sigil_claw"), new ItemSigilBounce().setRegistryName("sigil_bounce"), new ItemSigilFrost().setRegistryName("sigil_frost"), new ItemEnum.Variant<>(ComponentTypes.class, "baseComponent").setRegistryName("component"), new ItemDemonCrystal().setRegistryName("item_demon_crystal"), new ItemTelepositionFocus().setRegistryName("teleposition_focus"), new ItemExperienceBook().setRegistryName("experience_tome"), new ItemEnum.Variant<>(ShardType.class, "blood_shard").setRegistryName("blood_shard"), new ItemLivingArmour(EntityEquipmentSlot.HEAD).setRegistryName("living_armour_helmet"), new ItemLivingArmour(EntityEquipmentSlot.CHEST).setRegistryName("living_armour_chest"), new ItemLivingArmour(EntityEquipmentSlot.LEGS).setRegistryName("living_armour_leggings"), new ItemLivingArmour(EntityEquipmentSlot.FEET).setRegistryName("living_armour_boots"), new ItemSentientArmour(EntityEquipmentSlot.HEAD).setRegistryName("sentient_armour_helmet"), new ItemSentientArmour(EntityEquipmentSlot.CHEST).setRegistryName("sentient_armour_chest"), new ItemSentientArmour(EntityEquipmentSlot.LEGS).setRegistryName("sentient_armour_leggings"), new ItemSentientArmour(EntityEquipmentSlot.FEET).setRegistryName("sentient_armour_boots"), new ItemAltarMaker().setRegistryName("altar_maker"), new ItemUpgradeTome().setRegistryName("upgrade_tome"), new ItemUpgradeTrainer().setRegistryName("upgrade_trainer"), new ItemArcaneAshes().setRegistryName("arcane_ashes"), new ItemMonsterSoul().setRegistryName("monster_soul"), new ItemSoulGem().setRegistryName("soul_gem"), new ItemSoulSnare().setRegistryName("soul_snare"), new ItemSentientSword().setRegistryName("sentient_sword"), new ItemSentientBow().setRegistryName("sentient_bow"), new ItemSentientArmourGem().setRegistryName("sentient_armour_gem"), new ItemSentientAxe().setRegistryName("sentient_axe"), new ItemSentientPickaxe().setRegistryName("sentient_pickaxe"), new ItemSentientShovel().setRegistryName("sentient_shovel"), new ItemNodeRouter().setRegistryName("node_router"), new ItemRouterFilter().setRegistryName("base_item_filter"), new ItemFluidRouterFilter().setRegistryName("base_fluid_filter"), new ItemCuttingFluid().setRegistryName("cutting_fluid"), new ItemSanguineBook().setRegistryName("sanguine_book"), new ItemLivingArmourPointsUpgrade().setRegistryName("points_upgrade"), new ItemDemonWillGauge().setRegistryName("demon_will_gauge"), new ItemPotionFlask().setRegistryName("potion_flask"), new ItemAlchemicVial().setRegistryName("alchemic_vial")));
    event.getRegistry().registerAll(items.toArray(new Item[0]));
}
Also used : WayofTime.bloodmagic.item.soul(WayofTime.bloodmagic.item.soul) Item(net.minecraft.item.Item) IVariantProvider(WayofTime.bloodmagic.client.IVariantProvider) WayofTime.bloodmagic.item(WayofTime.bloodmagic.item) ModelRegistryEvent(net.minecraftforge.client.event.ModelRegistryEvent) GameRegistry(net.minecraftforge.fml.common.registry.GameRegistry) EntityEquipmentSlot(net.minecraft.inventory.EntityEquipmentSlot) ComponentTypes(WayofTime.bloodmagic.item.types.ComponentTypes) ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) IBMBlock(WayofTime.bloodmagic.block.IBMBlock) Lists(com.google.common.collect.Lists) Side(net.minecraftforge.fml.relauncher.Side) RegistryEvent(net.minecraftforge.event.RegistryEvent) Mod(net.minecraftforge.fml.common.Mod) ItemLivingArmour(WayofTime.bloodmagic.item.armour.ItemLivingArmour) ItemPackSelfSacrifice(WayofTime.bloodmagic.item.gear.ItemPackSelfSacrifice) ModelLoader(net.minecraftforge.client.model.ModelLoader) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) EnumHelper(net.minecraftforge.common.util.EnumHelper) IMeshProvider(WayofTime.bloodmagic.client.IMeshProvider) ItemLivingArmourPointsUpgrade(WayofTime.bloodmagic.item.alchemy.ItemLivingArmourPointsUpgrade) Int2ObjectOpenHashMap(it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap) ItemCuttingFluid(WayofTime.bloodmagic.item.alchemy.ItemCuttingFluid) ItemFluidRouterFilter(WayofTime.bloodmagic.item.routing.ItemFluidRouterFilter) ItemNodeRouter(WayofTime.bloodmagic.item.routing.ItemNodeRouter) Items(net.minecraft.init.Items) ItemPackSacrifice(WayofTime.bloodmagic.item.gear.ItemPackSacrifice) Set(java.util.Set) WayofTime.bloodmagic.item.sigil(WayofTime.bloodmagic.item.sigil) ShardType(WayofTime.bloodmagic.item.types.ShardType) Sets(com.google.common.collect.Sets) ItemSentientArmour(WayofTime.bloodmagic.item.armour.ItemSentientArmour) List(java.util.List) BloodMagic(WayofTime.bloodmagic.BloodMagic) Int2ObjectMap(it.unimi.dsi.fastutil.ints.Int2ObjectMap) ResourceLocation(net.minecraft.util.ResourceLocation) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) ItemRouterFilter(WayofTime.bloodmagic.item.routing.ItemRouterFilter) ShardType(WayofTime.bloodmagic.item.types.ShardType) Item(net.minecraft.item.Item) ItemLivingArmourPointsUpgrade(WayofTime.bloodmagic.item.alchemy.ItemLivingArmourPointsUpgrade) ItemSentientArmour(WayofTime.bloodmagic.item.armour.ItemSentientArmour) ItemPackSelfSacrifice(WayofTime.bloodmagic.item.gear.ItemPackSelfSacrifice) ItemFluidRouterFilter(WayofTime.bloodmagic.item.routing.ItemFluidRouterFilter) ItemLivingArmour(WayofTime.bloodmagic.item.armour.ItemLivingArmour) ComponentTypes(WayofTime.bloodmagic.item.types.ComponentTypes) ItemRouterFilter(WayofTime.bloodmagic.item.routing.ItemRouterFilter) IBMBlock(WayofTime.bloodmagic.block.IBMBlock) ItemNodeRouter(WayofTime.bloodmagic.item.routing.ItemNodeRouter) ItemPackSacrifice(WayofTime.bloodmagic.item.gear.ItemPackSacrifice) ItemCuttingFluid(WayofTime.bloodmagic.item.alchemy.ItemCuttingFluid) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Aggregations

ItemLivingArmour (WayofTime.bloodmagic.item.armour.ItemLivingArmour)2 ItemPackSacrifice (WayofTime.bloodmagic.item.gear.ItemPackSacrifice)2 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 BloodMagic (WayofTime.bloodmagic.BloodMagic)1 IBMBlock (WayofTime.bloodmagic.block.IBMBlock)1 IMeshProvider (WayofTime.bloodmagic.client.IMeshProvider)1 IVariantProvider (WayofTime.bloodmagic.client.IVariantProvider)1 WayofTime.bloodmagic.item (WayofTime.bloodmagic.item)1 ItemCuttingFluid (WayofTime.bloodmagic.item.alchemy.ItemCuttingFluid)1 ItemLivingArmourPointsUpgrade (WayofTime.bloodmagic.item.alchemy.ItemLivingArmourPointsUpgrade)1 ItemSentientArmour (WayofTime.bloodmagic.item.armour.ItemSentientArmour)1 ItemPackSelfSacrifice (WayofTime.bloodmagic.item.gear.ItemPackSelfSacrifice)1 ItemFluidRouterFilter (WayofTime.bloodmagic.item.routing.ItemFluidRouterFilter)1 ItemNodeRouter (WayofTime.bloodmagic.item.routing.ItemNodeRouter)1 ItemRouterFilter (WayofTime.bloodmagic.item.routing.ItemRouterFilter)1 WayofTime.bloodmagic.item.sigil (WayofTime.bloodmagic.item.sigil)1 WayofTime.bloodmagic.item.soul (WayofTime.bloodmagic.item.soul)1 ComponentTypes (WayofTime.bloodmagic.item.types.ComponentTypes)1 ShardType (WayofTime.bloodmagic.item.types.ShardType)1 LivingArmour (WayofTime.bloodmagic.livingArmour.LivingArmour)1