Java Code Examples for net.minecraft.entity.EntityLivingBase#getArmorInventoryList()

The following examples show how to use net.minecraft.entity.EntityLivingBase#getArmorInventoryList() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GTTileChargeOMat.java    From GT-Classic with GNU Lesser General Public License v3.0 5 votes vote down vote up
public void tryWirelessCharge() {
	// I opted to make this slower rather than 100 lines long, its not the main
	// feature of the tile
	if (world.getTotalWorldTime() % 20 == 0 && this.hasEnergy()) {
		if (world.playerEntities.isEmpty()) {
			return;
		}
		if (!world.isAreaLoaded(pos, 3)) {
			return;
		}
		if (!getEntitiesInRange().isEmpty()) {
			for (EntityLivingBase entity : getEntitiesInRange()) {
				for (ItemStack armor : entity.getArmorInventoryList()) {
					this.drawEnergy(ElectricItem.manager.charge((ItemStack) armor, (double) this.energy, this.tier, false, false));
				}
				IBaublesPlugin plugin = (IBaublesPlugin) IC2.loader.getPlugin("baubles", IBaublesPlugin.class);
				if (plugin != null && entity instanceof EntityPlayer) {
					IHasInventory inv = plugin.getBaublesInventory((EntityPlayer) entity);
					if (inv != null) {
						int i;
						for (i = 0; i < inv.getSlotCount(); ++i) {
							ItemStack stack = inv.getStackInSlot(i);
							this.drawEnergy(ElectricItem.manager.charge((ItemStack) stack, (double) this.energy, this.tier, false, false));
						}
					}
				}
			}
		}
	}
}
 
Example 2
Source File: BaublesSupport.java    From Wizardry with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
@Optional.Method(modid = "baubles")
public Iterable<ItemStack> getBaublesFallbackArmor(EntityLivingBase entity) {
	if (!(entity instanceof EntityPlayer)) return entity.getArmorInventoryList();
	if (BaublesApi.getBaublesHandler((EntityPlayer) entity) == null) return entity.getArmorInventoryList();

	ImmutableList.Builder<ItemStack> stacks = ImmutableList.builder();
	IBaublesItemHandler inv = BaublesApi.getBaublesHandler((EntityPlayer) entity);
	for (BaubleType type : BaubleType.values())
		for (int slot : type.getValidSlots()) {
			stacks.add(inv.getStackInSlot(slot));
		}
	return stacks.build();
}
 
Example 3
Source File: ItemSkinUpgrade.java    From Cyberware with MIT License 5 votes vote down vote up
@SubscribeEvent
public void handleHurt(LivingHurtEvent event)
{
	EntityLivingBase e = event.getEntityLiving();

	if (CyberwareAPI.isCyberwareInstalled(e, new ItemStack(this, 1, 1)))
	{
		if (event.getSource() instanceof EntityDamageSource && !(event.getSource() instanceof EntityDamageSourceIndirect))
		{
			for (ItemStack stack : e.getArmorInventoryList())
			{
				if (stack != null && stack.getItem() instanceof ItemArmor)
				{
					if (((ItemArmor) stack.getItem()).getArmorMaterial().getDamageReductionAmount(EntityEquipmentSlot.CHEST) > 4)
					{
						return;
					}
				}
				else if (stack != null && stack.getItem() instanceof ISpecialArmor)
				{
					if (((ISpecialArmor) stack.getItem()).getProperties(e, stack, event.getSource(), event.getAmount(), 1).AbsorbRatio * 25D > 4)
					{
						return;
					}
				}
			}
			
			Random random = e.getRNG();
			Entity attacker = ((EntityDamageSource) event.getSource()).getSourceOfDamage();
			int level = 2;
			if (EnchantmentThorns.shouldHit(3, random))
			{
				if (attacker != null)
				{
					attacker.attackEntityFrom(DamageSource.causeThornsDamage(e), (float) EnchantmentThorns.getDamage(2, random));
				}
			}
		}
	}
}
 
Example 4
Source File: BaublesSupport.java    From Wizardry with GNU Lesser General Public License v3.0 4 votes vote down vote up
public Iterable<ItemStack> getBaublesFallbackArmor(EntityLivingBase entity) {
	return entity.getArmorInventoryList();
}
 
Example 5
Source File: ItemBrainUpgrade.java    From Cyberware with MIT License 4 votes vote down vote up
@SubscribeEvent(priority=EventPriority.HIGHEST)
public void handleHurt(LivingAttackEvent event)
{
	EntityLivingBase e = event.getEntityLiving();
	
	if (CyberwareAPI.isCyberwareInstalled(e, new ItemStack(this, 1, 4)) && isMatrixWorking(e))
	{

		if (!e.worldObj.isRemote && event.getSource() instanceof EntityDamageSource)
		{
			Entity attacker = ((EntityDamageSource) event.getSource()).getSourceOfDamage();
			if (e instanceof EntityPlayer)
			{
				String str = e.getEntityId() + " " + e.ticksExisted + " " + attacker.getEntityId();
				if (lastHits.contains(str))
				{
					return;
				}
				else
				{
					lastHits.add(str);
				}
			}
			
			boolean armor = false;
			for (ItemStack stack : e.getArmorInventoryList())
			{
				if (stack != null && stack.getItem() instanceof ItemArmor)
				{
					if (((ItemArmor) stack.getItem()).getArmorMaterial().getDamageReductionAmount(EntityEquipmentSlot.CHEST) > 4)
					{
						return;
					}
				}
				else if (stack != null && stack.getItem() instanceof ISpecialArmor)
				{
					if (((ISpecialArmor) stack.getItem()).getProperties(e, stack, event.getSource(), event.getAmount(), 1).AbsorbRatio * 25D > 4)
					{
						return;
					}
				}
				
				if (stack != null)
				{
					armor = true;
				}
				
			}
			

			if (!((float) e.hurtResistantTime > (float) e.maxHurtResistantTime / 2.0F))
               {
				Random random = e.getRNG();
				if (random.nextFloat() < (armor ? LibConstants.DODGE_ARMOR : LibConstants.DODGE_NO_ARMOR))
				{
					event.setCanceled(true);
					e.hurtResistantTime = e.maxHurtResistantTime;
					e.hurtTime = e.maxHurtTime = 10;
					ReflectionHelper.setPrivateValue(EntityLivingBase.class, e, 9999F, 46);
					
					CyberwarePacketHandler.INSTANCE.sendToAllAround(new DodgePacket(e.getEntityId()), new TargetPoint(e.worldObj.provider.getDimension(), e.posX, e.posY, e.posZ, 50));
				}
			}
		}
	}
}