Java 类net.minecraft.entity.ai.attributes.IAttributeInstance 实例源码

项目:Backmemed    文件:SharedMonsterAttributes.java   
/**
 * Creates an NBTTagCompound from an AttributeInstance, including its AttributeModifiers
 */
private static NBTTagCompound writeAttributeInstanceToNBT(IAttributeInstance instance)
{
    NBTTagCompound nbttagcompound = new NBTTagCompound();
    IAttribute iattribute = instance.getAttribute();
    nbttagcompound.setString("Name", iattribute.getAttributeUnlocalizedName());
    nbttagcompound.setDouble("Base", instance.getBaseValue());
    Collection<AttributeModifier> collection = instance.getModifiers();

    if (collection != null && !collection.isEmpty())
    {
        NBTTagList nbttaglist = new NBTTagList();

        for (AttributeModifier attributemodifier : collection)
        {
            if (attributemodifier.isSaved())
            {
                nbttaglist.appendTag(writeAttributeModifierToNBT(attributemodifier));
            }
        }

        nbttagcompound.setTag("Modifiers", nbttaglist);
    }

    return nbttagcompound;
}
项目:Infernum    文件:EntityPigZombieMage.java   
protected void updateAITasks() {
    IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);

    if (this.isAngry()) {
        --this.angerLevel;
    }

    if (this.randomSoundDelay > 0 && --this.randomSoundDelay == 0) {
        this.playSound(SoundEvents.ENTITY_ZOMBIE_PIG_ANGRY, this.getSoundVolume() * 2.0F,
                ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F) * 1.8F);
    }

    if (this.angerLevel > 0 && this.angerTargetUUID != null && this.getAITarget() == null) {
        EntityPlayer entityplayer = this.world.getPlayerEntityByUUID(this.angerTargetUUID);
        this.setRevengeTarget(entityplayer);
        this.attackingPlayer = entityplayer;
        this.recentlyHit = this.getRevengeTimer();
    }

    super.updateAITasks();
}
项目:CustomWorldGen    文件:SharedMonsterAttributes.java   
private static void applyModifiersToAttributeInstance(IAttributeInstance instance, NBTTagCompound compound)
{
    instance.setBaseValue(compound.getDouble("Base"));

    if (compound.hasKey("Modifiers", 9))
    {
        NBTTagList nbttaglist = compound.getTagList("Modifiers", 10);

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            AttributeModifier attributemodifier = readAttributeModifierFromNBT(nbttaglist.getCompoundTagAt(i));

            if (attributemodifier != null)
            {
                AttributeModifier attributemodifier1 = instance.getModifier(attributemodifier.getID());

                if (attributemodifier1 != null)
                {
                    instance.removeModifier(attributemodifier1);
                }

                instance.applyModifier(attributemodifier);
            }
        }
    }
}
项目:Backmemed    文件:EntityTrackerEntry.java   
/**
 * Sends the entity metadata (DataWatcher) and attributes to all players tracking this entity, including the entity
 * itself if a player.
 */
private void sendMetadataToAllAssociatedPlayers()
{
    EntityDataManager entitydatamanager = this.trackedEntity.getDataManager();

    if (entitydatamanager.isDirty())
    {
        this.sendToTrackingAndSelf(new SPacketEntityMetadata(this.trackedEntity.getEntityId(), entitydatamanager, false));
    }

    if (this.trackedEntity instanceof EntityLivingBase)
    {
        AttributeMap attributemap = (AttributeMap)((EntityLivingBase)this.trackedEntity).getAttributeMap();
        Set<IAttributeInstance> set = attributemap.getAttributeInstanceSet();

        if (!set.isEmpty())
        {
            this.sendToTrackingAndSelf(new SPacketEntityProperties(this.trackedEntity.getEntityId(), set));
        }

        set.clear();
    }
}
项目:DecompiledMinecraft    文件:EntityZombie.java   
/**
 * Set whether this zombie is a child.
 */
public void setChild(boolean childZombie)
{
    this.getDataWatcher().updateObject(12, Byte.valueOf((byte)(childZombie ? 1 : 0)));

    if (this.worldObj != null && !this.worldObj.isRemote)
    {
        IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed);
        iattributeinstance.removeModifier(babySpeedBoostModifier);

        if (childZombie)
        {
            iattributeinstance.applyModifier(babySpeedBoostModifier);
        }
    }

    this.setChildSize(childZombie);
}
项目:DecompiledMinecraft    文件:SharedMonsterAttributes.java   
/**
 * Creates an NBTTagCompound from an AttributeInstance, including its AttributeModifiers
 */
private static NBTTagCompound writeAttributeInstanceToNBT(IAttributeInstance p_111261_0_)
{
    NBTTagCompound nbttagcompound = new NBTTagCompound();
    IAttribute iattribute = p_111261_0_.getAttribute();
    nbttagcompound.setString("Name", iattribute.getAttributeUnlocalizedName());
    nbttagcompound.setDouble("Base", p_111261_0_.getBaseValue());
    Collection<AttributeModifier> collection = p_111261_0_.func_111122_c();

    if (collection != null && !collection.isEmpty())
    {
        NBTTagList nbttaglist = new NBTTagList();

        for (AttributeModifier attributemodifier : collection)
        {
            if (attributemodifier.isSaved())
            {
                nbttaglist.appendTag(writeAttributeModifierToNBT(attributemodifier));
            }
        }

        nbttagcompound.setTag("Modifiers", nbttaglist);
    }

    return nbttagcompound;
}
项目:DecompiledMinecraft    文件:SharedMonsterAttributes.java   
public static void func_151475_a(BaseAttributeMap p_151475_0_, NBTTagList p_151475_1_)
{
    for (int i = 0; i < p_151475_1_.tagCount(); ++i)
    {
        NBTTagCompound nbttagcompound = p_151475_1_.getCompoundTagAt(i);
        IAttributeInstance iattributeinstance = p_151475_0_.getAttributeInstanceByName(nbttagcompound.getString("Name"));

        if (iattributeinstance != null)
        {
            applyModifiersToAttributeInstance(iattributeinstance, nbttagcompound);
        }
        else
        {
            logger.warn("Ignoring unknown attribute \'" + nbttagcompound.getString("Name") + "\'");
        }
    }
}
项目:DecompiledMinecraft    文件:SharedMonsterAttributes.java   
private static void applyModifiersToAttributeInstance(IAttributeInstance p_111258_0_, NBTTagCompound p_111258_1_)
{
    p_111258_0_.setBaseValue(p_111258_1_.getDouble("Base"));

    if (p_111258_1_.hasKey("Modifiers", 9))
    {
        NBTTagList nbttaglist = p_111258_1_.getTagList("Modifiers", 10);

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            AttributeModifier attributemodifier = readAttributeModifierFromNBT(nbttaglist.getCompoundTagAt(i));

            if (attributemodifier != null)
            {
                AttributeModifier attributemodifier1 = p_111258_0_.getModifier(attributemodifier.getID());

                if (attributemodifier1 != null)
                {
                    p_111258_0_.removeModifier(attributemodifier1);
                }

                p_111258_0_.applyModifier(attributemodifier);
            }
        }
    }
}
项目:DecompiledMinecraft    文件:EntityTrackerEntry.java   
/**
 * Sends the entity metadata (DataWatcher) and attributes to all players tracking this entity, including the entity
 * itself if a player.
 */
private void sendMetadataToAllAssociatedPlayers()
{
    DataWatcher datawatcher = this.trackedEntity.getDataWatcher();

    if (datawatcher.hasObjectChanged())
    {
        this.func_151261_b(new S1CPacketEntityMetadata(this.trackedEntity.getEntityId(), datawatcher, false));
    }

    if (this.trackedEntity instanceof EntityLivingBase)
    {
        ServersideAttributeMap serversideattributemap = (ServersideAttributeMap)((EntityLivingBase)this.trackedEntity).getAttributeMap();
        Set<IAttributeInstance> set = serversideattributemap.getAttributeInstanceSet();

        if (!set.isEmpty())
        {
            this.func_151261_b(new S20PacketEntityProperties(this.trackedEntity.getEntityId(), set));
        }

        set.clear();
    }
}
项目:Backmemed    文件:SharedMonsterAttributes.java   
private static void applyModifiersToAttributeInstance(IAttributeInstance instance, NBTTagCompound compound)
{
    instance.setBaseValue(compound.getDouble("Base"));

    if (compound.hasKey("Modifiers", 9))
    {
        NBTTagList nbttaglist = compound.getTagList("Modifiers", 10);

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            AttributeModifier attributemodifier = readAttributeModifierFromNBT(nbttaglist.getCompoundTagAt(i));

            if (attributemodifier != null)
            {
                AttributeModifier attributemodifier1 = instance.getModifier(attributemodifier.getID());

                if (attributemodifier1 != null)
                {
                    instance.removeModifier(attributemodifier1);
                }

                instance.applyModifier(attributemodifier);
            }
        }
    }
}
项目:CustomWorldGen    文件:SharedMonsterAttributes.java   
public static void setAttributeModifiers(AbstractAttributeMap map, NBTTagList list)
{
    for (int i = 0; i < list.tagCount(); ++i)
    {
        NBTTagCompound nbttagcompound = list.getCompoundTagAt(i);
        IAttributeInstance iattributeinstance = map.getAttributeInstanceByName(nbttagcompound.getString("Name"));

        if (iattributeinstance != null)
        {
            applyModifiersToAttributeInstance(iattributeinstance, nbttagcompound);
        }
        else
        {
            LOGGER.warn("Ignoring unknown attribute \'{}\'", new Object[] {nbttagcompound.getString("Name")});
        }
    }
}
项目:DecompiledMinecraft    文件:SharedMonsterAttributes.java   
/**
 * Creates an NBTTagCompound from an AttributeInstance, including its AttributeModifiers
 */
private static NBTTagCompound writeAttributeInstanceToNBT(IAttributeInstance p_111261_0_)
{
    NBTTagCompound nbttagcompound = new NBTTagCompound();
    IAttribute iattribute = p_111261_0_.getAttribute();
    nbttagcompound.setString("Name", iattribute.getAttributeUnlocalizedName());
    nbttagcompound.setDouble("Base", p_111261_0_.getBaseValue());
    Collection<AttributeModifier> collection = p_111261_0_.func_111122_c();

    if (collection != null && !collection.isEmpty())
    {
        NBTTagList nbttaglist = new NBTTagList();

        for (AttributeModifier attributemodifier : collection)
        {
            if (attributemodifier.isSaved())
            {
                nbttaglist.appendTag(writeAttributeModifierToNBT(attributemodifier));
            }
        }

        nbttagcompound.setTag("Modifiers", nbttaglist);
    }

    return nbttagcompound;
}
项目:DecompiledMinecraft    文件:SharedMonsterAttributes.java   
private static void applyModifiersToAttributeInstance(IAttributeInstance p_111258_0_, NBTTagCompound p_111258_1_)
{
    p_111258_0_.setBaseValue(p_111258_1_.getDouble("Base"));

    if (p_111258_1_.hasKey("Modifiers", 9))
    {
        NBTTagList nbttaglist = p_111258_1_.getTagList("Modifiers", 10);

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            AttributeModifier attributemodifier = readAttributeModifierFromNBT(nbttaglist.getCompoundTagAt(i));

            if (attributemodifier != null)
            {
                AttributeModifier attributemodifier1 = p_111258_0_.getModifier(attributemodifier.getID());

                if (attributemodifier1 != null)
                {
                    p_111258_0_.removeModifier(attributemodifier1);
                }

                p_111258_0_.applyModifier(attributemodifier);
            }
        }
    }
}
项目:Backmemed    文件:SharedMonsterAttributes.java   
public static void setAttributeModifiers(AbstractAttributeMap map, NBTTagList list)
{
    for (int i = 0; i < list.tagCount(); ++i)
    {
        NBTTagCompound nbttagcompound = list.getCompoundTagAt(i);
        IAttributeInstance iattributeinstance = map.getAttributeInstanceByName(nbttagcompound.getString("Name"));

        if (iattributeinstance == null)
        {
            LOGGER.warn("Ignoring unknown attribute \'{}\'", new Object[] {nbttagcompound.getString("Name")});
        }
        else
        {
            applyModifiersToAttributeInstance(iattributeinstance, nbttagcompound);
        }
    }
}
项目:BaseClient    文件:EntityTrackerEntry.java   
/**
 * Sends the entity metadata (DataWatcher) and attributes to all players tracking this entity, including the entity
 * itself if a player.
 */
private void sendMetadataToAllAssociatedPlayers()
{
    DataWatcher datawatcher = this.trackedEntity.getDataWatcher();

    if (datawatcher.hasObjectChanged())
    {
        this.func_151261_b(new S1CPacketEntityMetadata(this.trackedEntity.getEntityId(), datawatcher, false));
    }

    if (this.trackedEntity instanceof EntityLivingBase)
    {
        ServersideAttributeMap serversideattributemap = (ServersideAttributeMap)((EntityLivingBase)this.trackedEntity).getAttributeMap();
        Set<IAttributeInstance> set = serversideattributemap.getAttributeInstanceSet();

        if (!set.isEmpty())
        {
            this.func_151261_b(new S20PacketEntityProperties(this.trackedEntity.getEntityId(), set));
        }

        set.clear();
    }
}
项目:CustomWorldGen    文件:EntityEnderman.java   
/**
 * Sets the active target the Task system uses for tracking
 */
public void setAttackTarget(@Nullable EntityLivingBase entitylivingbaseIn)
{
    super.setAttackTarget(entitylivingbaseIn);
    IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);

    if (entitylivingbaseIn == null)
    {
        this.targetChangeTime = 0;
        this.dataManager.set(SCREAMING, Boolean.valueOf(false));
        iattributeinstance.removeModifier(ATTACKING_SPEED_BOOST);
    }
    else
    {
        this.targetChangeTime = this.ticksExisted;
        this.dataManager.set(SCREAMING, Boolean.valueOf(true));

        if (!iattributeinstance.hasModifier(ATTACKING_SPEED_BOOST))
        {
            iattributeinstance.applyModifier(ATTACKING_SPEED_BOOST);
        }
    }
}
项目:Backmemed    文件:EntityZombie.java   
/**
 * Set whether this zombie is a child.
 */
public void setChild(boolean childZombie)
{
    this.getDataManager().set(IS_CHILD, Boolean.valueOf(childZombie));

    if (this.world != null && !this.world.isRemote)
    {
        IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);
        iattributeinstance.removeModifier(BABY_SPEED_BOOST);

        if (childZombie)
        {
            iattributeinstance.applyModifier(BABY_SPEED_BOOST);
        }
    }

    this.setChildSize(childZombie);
}
项目:BaseClient    文件:SharedMonsterAttributes.java   
/**
 * Creates an NBTTagCompound from an AttributeInstance, including its AttributeModifiers
 */
private static NBTTagCompound writeAttributeInstanceToNBT(IAttributeInstance p_111261_0_)
{
    NBTTagCompound nbttagcompound = new NBTTagCompound();
    IAttribute iattribute = p_111261_0_.getAttribute();
    nbttagcompound.setString("Name", iattribute.getAttributeUnlocalizedName());
    nbttagcompound.setDouble("Base", p_111261_0_.getBaseValue());
    Collection<AttributeModifier> collection = p_111261_0_.func_111122_c();

    if (collection != null && !collection.isEmpty())
    {
        NBTTagList nbttaglist = new NBTTagList();

        for (AttributeModifier attributemodifier : collection)
        {
            if (attributemodifier.isSaved())
            {
                nbttaglist.appendTag(writeAttributeModifierToNBT(attributemodifier));
            }
        }

        nbttagcompound.setTag("Modifiers", nbttaglist);
    }

    return nbttagcompound;
}
项目:BaseClient    文件:SharedMonsterAttributes.java   
public static void func_151475_a(BaseAttributeMap p_151475_0_, NBTTagList p_151475_1_)
{
    for (int i = 0; i < p_151475_1_.tagCount(); ++i)
    {
        NBTTagCompound nbttagcompound = p_151475_1_.getCompoundTagAt(i);
        IAttributeInstance iattributeinstance = p_151475_0_.getAttributeInstanceByName(nbttagcompound.getString("Name"));

        if (iattributeinstance != null)
        {
            applyModifiersToAttributeInstance(iattributeinstance, nbttagcompound);
        }
        else
        {
            logger.warn("Ignoring unknown attribute \'" + nbttagcompound.getString("Name") + "\'");
        }
    }
}
项目:BaseClient    文件:AbstractClientPlayer.java   
public void setSprintingGay(boolean sprinting)
{
    SprintEvent event = new SprintEvent(sprinting);
    event.call();

    sprinting = event.sprint;

    super.setSprinting(sprinting);
    IAttributeInstance var2 = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed);

    if (var2.getModifier(sprintingSpeedBoostModifierUUID) != null)
    {
        var2.removeModifier(sprintingSpeedBoostModifier);
    }

    if (sprinting)
    {
        var2.applyModifier(sprintingSpeedBoostModifier);
    }
}
项目:BaseClient    文件:EntityTrackerEntry.java   
/**
 * Sends the entity metadata (DataWatcher) and attributes to all players tracking this entity, including the entity
 * itself if a player.
 */
private void sendMetadataToAllAssociatedPlayers()
{
    DataWatcher datawatcher = this.trackedEntity.getDataWatcher();

    if (datawatcher.hasObjectChanged())
    {
        this.func_151261_b(new S1CPacketEntityMetadata(this.trackedEntity.getEntityId(), datawatcher, false));
    }

    if (this.trackedEntity instanceof EntityLivingBase)
    {
        ServersideAttributeMap serversideattributemap = (ServersideAttributeMap)((EntityLivingBase)this.trackedEntity).getAttributeMap();
        Set<IAttributeInstance> set = serversideattributemap.getAttributeInstanceSet();

        if (!set.isEmpty())
        {
            this.func_151261_b(new S20PacketEntityProperties(this.trackedEntity.getEntityId(), set));
        }

        set.clear();
    }
}
项目:BaseClient    文件:EntityLivingBase.java   
/**
 * Set sprinting switch for Entity.
 */
public void setSprinting(boolean sprinting)
{
    super.setSprinting(sprinting);
    IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed);

    if (iattributeinstance.getModifier(sprintingSpeedBoostModifierUUID) != null)
    {
        iattributeinstance.removeModifier(sprintingSpeedBoostModifier);
    }

    if (sprinting)
    {
        iattributeinstance.applyModifier(sprintingSpeedBoostModifier);
    }
}
项目:BaseClient    文件:EntityZombie.java   
/**
 * Set whether this zombie is a child.
 */
public void setChild(boolean childZombie)
{
    this.getDataWatcher().updateObject(12, Byte.valueOf((byte)(childZombie ? 1 : 0)));

    if (this.worldObj != null && !this.worldObj.isRemote)
    {
        IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed);
        iattributeinstance.removeModifier(babySpeedBoostModifier);

        if (childZombie)
        {
            iattributeinstance.applyModifier(babySpeedBoostModifier);
        }
    }

    this.setChildSize(childZombie);
}
项目:Backmemed    文件:EntityLivingBase.java   
/**
 * Set sprinting switch for Entity.
 */
public void setSprinting(boolean sprinting)
{
    super.setSprinting(sprinting);
    IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);

    if (iattributeinstance.getModifier(SPRINTING_SPEED_BOOST_ID) != null)
    {
        iattributeinstance.removeModifier(SPRINTING_SPEED_BOOST);
    }

    if (sprinting)
    {
        iattributeinstance.applyModifier(SPRINTING_SPEED_BOOST);
    }
}
项目:BaseClient    文件:SharedMonsterAttributes.java   
public static void func_151475_a(BaseAttributeMap p_151475_0_, NBTTagList p_151475_1_)
{
    for (int i = 0; i < p_151475_1_.tagCount(); ++i)
    {
        NBTTagCompound nbttagcompound = p_151475_1_.getCompoundTagAt(i);
        IAttributeInstance iattributeinstance = p_151475_0_.getAttributeInstanceByName(nbttagcompound.getString("Name"));

        if (iattributeinstance != null)
        {
            applyModifiersToAttributeInstance(iattributeinstance, nbttagcompound);
        }
        else
        {
            logger.warn("Ignoring unknown attribute \'" + nbttagcompound.getString("Name") + "\'");
        }
    }
}
项目:CustomWorldGen    文件:SharedMonsterAttributes.java   
/**
 * Creates an NBTTagCompound from an AttributeInstance, including its AttributeModifiers
 */
private static NBTTagCompound writeAttributeInstanceToNBT(IAttributeInstance instance)
{
    NBTTagCompound nbttagcompound = new NBTTagCompound();
    IAttribute iattribute = instance.getAttribute();
    nbttagcompound.setString("Name", iattribute.getAttributeUnlocalizedName());
    nbttagcompound.setDouble("Base", instance.getBaseValue());
    Collection<AttributeModifier> collection = instance.getModifiers();

    if (collection != null && !collection.isEmpty())
    {
        NBTTagList nbttaglist = new NBTTagList();

        for (AttributeModifier attributemodifier : collection)
        {
            if (attributemodifier.isSaved())
            {
                nbttaglist.appendTag(writeAttributeModifierToNBT(attributemodifier));
            }
        }

        nbttagcompound.setTag("Modifiers", nbttaglist);
    }

    return nbttagcompound;
}
项目:EndermanEvolution    文件:EntityFrienderman.java   
@Override
public void setAttackTarget(@Nullable EntityLivingBase entitylivingbaseIn) {
    if (isTamed() && entitylivingbaseIn == getOwner()) {
        return;
    }
    super.setAttackTarget(entitylivingbaseIn);
    IAttributeInstance iattributeinstance = getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);

    if (entitylivingbaseIn == null) {
        dataManager.set(SCREAMING, Boolean.valueOf(false));
        iattributeinstance.removeModifier(ATTACKING_SPEED_BOOST);
    }
    else {
        dataManager.set(SCREAMING, Boolean.valueOf(true));
        if (isTamed() && isSitting()) {
            setSitting(false);
        }
        if (!iattributeinstance.hasModifier(ATTACKING_SPEED_BOOST)) {
            iattributeinstance.applyModifier(ATTACKING_SPEED_BOOST);
        }
    }
}
项目:Mob-Option-Redux    文件:Stats.java   
@Override
public void synchronise() {
    if (entity != null && !entity.getEntityWorld().isRemote) {
        final IAttributeInstance health = entity.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH);

        final IAttributeInstance attack = entity.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE);

        final IAttributeInstance follow = entity.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE);

        final SPacketEntityProperties packet = new SPacketEntityProperties(entity.getEntityId(), Arrays.asList(new IAttributeInstance[] { health, attack, follow }));

        ((WorldServer) entity.getEntityWorld()).getEntityTracker().sendToTrackingAndSelf(entity, packet);
    }
}
项目:Backmemed    文件:NetHandlerPlayClient.java   
/**
 * Updates en entity's attributes and their respective modifiers, which are used for speed bonusses (player
 * sprinting, animals fleeing, baby speed), weapon/tool attackDamage, hostiles followRange randomization, zombie
 * maxHealth and knockback resistance as well as reinforcement spawning chance.
 */
public void handleEntityProperties(SPacketEntityProperties packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = this.clientWorldController.getEntityByID(packetIn.getEntityId());

    if (entity != null)
    {
        if (!(entity instanceof EntityLivingBase))
        {
            throw new IllegalStateException("Server tried to update attributes of a non-living entity (actually: " + entity + ")");
        }
        else
        {
            AbstractAttributeMap abstractattributemap = ((EntityLivingBase)entity).getAttributeMap();

            for (SPacketEntityProperties.Snapshot spacketentityproperties$snapshot : packetIn.getSnapshots())
            {
                IAttributeInstance iattributeinstance = abstractattributemap.getAttributeInstanceByName(spacketentityproperties$snapshot.getName());

                if (iattributeinstance == null)
                {
                    iattributeinstance = abstractattributemap.registerAttribute(new RangedAttribute((IAttribute)null, spacketentityproperties$snapshot.getName(), 0.0D, 2.2250738585072014E-308D, Double.MAX_VALUE));
                }

                iattributeinstance.setBaseValue(spacketentityproperties$snapshot.getBaseValue());
                iattributeinstance.removeAllModifiers();

                for (AttributeModifier attributemodifier : spacketentityproperties$snapshot.getModifiers())
                {
                    iattributeinstance.applyModifier(attributemodifier);
                }
            }
        }
    }
}
项目:harshencastle    文件:ElementalPendant.java   
@Override
public void onAdd(EntityPlayer player, int slot) {
    IAttributeInstance attributeHealth = player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH);
    AttributeModifier modifierHealth = new AttributeModifier(UUID.fromString("d20525ee-98b2-402f-b298-61bc19a9e0c5"), "elementalPendantHealth4", 4, 0).setSaved(true);
    if(!attributeHealth.hasModifier(modifierHealth))    
        attributeHealth.applyModifier(modifierHealth);

    IAttributeInstance attributeArmour = player.getEntityAttribute(SharedMonsterAttributes.ARMOR);
    AttributeModifier modifierArmour = new AttributeModifier(UUID.fromString("82b79e32-3c85-4132-b121-03807793338c"), "elementalPendantArmour2", 2, 0).setSaved(true);
    if(!attributeArmour.hasModifier(modifierArmour))    
        attributeArmour.applyModifier(modifierArmour);
}
项目:harshencastle    文件:CriminalPendant.java   
@Override
public void onAdd(EntityPlayer player, int slot) {
    IAttributeInstance attributeHealth = player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH);
    AttributeModifier modifierHealth = new AttributeModifier(UUID.fromString("72eb8438-8f2b-11e7-bb31-be2e44b06b34"), "criminalPendantHealth6", 6, 0).setSaved(true);
    if(!attributeHealth.hasModifier(modifierHealth))    
        attributeHealth.applyModifier(modifierHealth);
}
项目:InControl    文件:SummonAidRule.java   
private void addHealthAction(AttributeMap map) {
    float m = map.has(ACTION_HEALTHMULTIPLY) ? map.get(ACTION_HEALTHMULTIPLY) : 1;
    float a = map.has(ACTION_HEALTHADD) ? map.get(ACTION_HEALTHADD) : 0;
    actions.add(event -> {
        EntityZombie helper = getHelper(event);
        IAttributeInstance entityAttribute = helper.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH);
        if (entityAttribute != null) {
            double newMax = entityAttribute.getBaseValue() * m + a;
            entityAttribute.setBaseValue(newMax);
            helper.setHealth((float) newMax);
        }
    });
}
项目:InControl    文件:SummonAidRule.java   
private void addDamageAction(AttributeMap map) {
    float m = map.has(ACTION_DAMAGEMULTIPLY) ? map.get(ACTION_DAMAGEMULTIPLY) : 1;
    float a = map.has(ACTION_DAMAGEADD) ? map.get(ACTION_DAMAGEADD) : 0;
    actions.add(event -> {
        EntityZombie helper = getHelper(event);
        IAttributeInstance entityAttribute = helper.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE);
        if (entityAttribute != null) {
            double newMax = entityAttribute.getBaseValue() * m + a;
            entityAttribute.setBaseValue(newMax);
        }
    });
}
项目:InControl    文件:SpawnRule.java   
private void addHealthAction(AttributeMap map) {
    float m = map.has(ACTION_HEALTHMULTIPLY) ? map.get(ACTION_HEALTHMULTIPLY) : 1;
    float a = map.has(ACTION_HEALTHADD) ? map.get(ACTION_HEALTHADD) : 0;
    actions.add(event -> {
        EntityLivingBase entityLiving = event.getEntityLiving();
        if (entityLiving != null) {
            IAttributeInstance entityAttribute = entityLiving.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH);
            if (entityAttribute != null) {
                double newMax = entityAttribute.getBaseValue() * m + a;
                entityAttribute.setBaseValue(newMax);
                entityLiving.setHealth((float) newMax);
            }
        }
    });
}
项目:InControl    文件:SpawnRule.java   
private void addDamageAction(AttributeMap map) {
    float m = map.has(ACTION_DAMAGEMULTIPLY) ? map.get(ACTION_DAMAGEMULTIPLY) : 1;
    float a = map.has(ACTION_DAMAGEADD) ? map.get(ACTION_DAMAGEADD) : 0;
    actions.add(event -> {
        EntityLivingBase entityLiving = event.getEntityLiving();
        if (entityLiving != null) {
            IAttributeInstance entityAttribute = entityLiving.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE);
            if (entityAttribute != null) {
                double newMax = entityAttribute.getBaseValue() * m + a;
                entityAttribute.setBaseValue(newMax);
            }
        }
    });
}
项目:Backmemed    文件:AbstractClientPlayer.java   
public float getFovModifier()
{
    float f = 1.0F;

    if (this.capabilities.isFlying)
    {
        f *= 1.1F;
    }

    IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);
    f = (float)((double)f * ((iattributeinstance.getAttributeValue() / (double)this.capabilities.getWalkSpeed() + 1.0D) / 2.0D));

    if (this.capabilities.getWalkSpeed() == 0.0F || Float.isNaN(f) || Float.isInfinite(f))
    {
        f = 1.0F;
    }

    if (this.isHandActive() && this.getActiveItemStack().getItem() == Items.BOW)
    {
        int i = this.getItemInUseMaxCount();
        float f1 = (float)i / 20.0F;

        if (f1 > 1.0F)
        {
            f1 = 1.0F;
        }
        else
        {
            f1 = f1 * f1;
        }

        f *= 1.0F - f1 * 0.15F;
    }

    return Reflector.ForgeHooksClient_getOffsetFOV.exists() ? Reflector.callFloat(Reflector.ForgeHooksClient_getOffsetFOV, new Object[] {this, Float.valueOf(f)}): f;
}
项目:DecompiledMinecraft    文件:EntityEnderman.java   
public void resetTask()
{
    this.player = null;
    this.enderman.setScreaming(false);
    IAttributeInstance iattributeinstance = this.enderman.getEntityAttribute(SharedMonsterAttributes.movementSpeed);
    iattributeinstance.removeModifier(EntityEnderman.attackingSpeedBoostModifier);
    super.resetTask();
}
项目:CustomWorldGen    文件:SPacketEntityProperties.java   
public SPacketEntityProperties(int entityIdIn, Collection<IAttributeInstance> instances)
{
    this.entityId = entityIdIn;

    for (IAttributeInstance iattributeinstance : instances)
    {
        this.snapshots.add(new SPacketEntityProperties.Snapshot(iattributeinstance.getAttribute().getAttributeUnlocalizedName(), iattributeinstance.getBaseValue(), iattributeinstance.getModifiers()));
    }
}
项目:DecompiledMinecraft    文件:SharedMonsterAttributes.java   
/**
 * Creates an NBTTagList from a BaseAttributeMap, including all its AttributeInstances
 */
public static NBTTagList writeBaseAttributeMapToNBT(BaseAttributeMap p_111257_0_)
{
    NBTTagList nbttaglist = new NBTTagList();

    for (IAttributeInstance iattributeinstance : p_111257_0_.getAllAttributes())
    {
        nbttaglist.appendTag(writeAttributeInstanceToNBT(iattributeinstance));
    }

    return nbttaglist;
}
项目:DecompiledMinecraft    文件:S20PacketEntityProperties.java   
public S20PacketEntityProperties(int entityIdIn, Collection<IAttributeInstance> p_i45236_2_)
{
    this.entityId = entityIdIn;

    for (IAttributeInstance iattributeinstance : p_i45236_2_)
    {
        this.field_149444_b.add(new S20PacketEntityProperties.Snapshot(iattributeinstance.getAttribute().getAttributeUnlocalizedName(), iattributeinstance.getBaseValue(), iattributeinstance.func_111122_c()));
    }
}