Class AbstractDamageEntityEvent
java.lang.Object
org.spongepowered.api.event.impl.AbstractEvent
org.spongepowered.api.event.impl.entity.AbstractModifierEvent<DamageFunction,DamageModifier>
org.spongepowered.api.event.impl.entity.AbstractDamageEntityEvent
- All Implemented Interfaces:
Cancellable,DamageEntityEvent,Event
public abstract class AbstractDamageEntityEvent
extends AbstractModifierEvent<DamageFunction,DamageModifier>
implements DamageEntityEvent
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected doubleprotected doubleprotected List<DamageFunction> Fields inherited from class org.spongepowered.api.event.impl.entity.AbstractModifierEvent
modifierFunctions, modifiers, originalFinalAmount, originalModifierMap, originalModifiersFields inherited from class org.spongepowered.api.event.impl.AbstractEvent
currentOrder -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDamageModifierBefore(DamageModifier damageModifier, DoubleUnaryOperator function, Set<DamageModifierType> before) Adds the providedDamageModifierandDoubleUnaryOperatorto the list of modifiers, such that theSetcontainingDamageModifierTypes provided inbeforewill appear after the provided damage modifier.voidaddModifierAfter(DamageModifier damageModifier, DoubleUnaryOperator function, Set<DamageModifierType> after) Adds the providedDamageModifierandDoubleUnaryOperatorto the list of modifiers, such that the modifier will appear in order after any current modifiers whose type are included in the providedSetofDamageModifierTypes.doubleGets the "base" damage to deal to the targetedEntity.protected DamageFunctionconvertTuple(DamageModifier obj, DoubleUnaryOperator function) damage(DamageModifier damageModifier) Gets the damage for the providedDamageModifier.final doubleGets the final damage that will be passed into the proceedingDamageEntityEvent.protected final voidinit()Called once all fields have been set by the generated constructor in a subclass.final booleanisModifierApplicable(DamageModifier damageModifier) Checks whether the providedDamageModifieris applicable to the current availableDamageModifiers.Gets the modifiers affecting this event.final Map<DamageModifier, Tuple<Double, Double>> Gets an immutableMapof all originalDamageModifiers and their associated "modified" damage.final doubleGets the original "final" amount of damage after all originalDamageModifiers are applied toDamageEntityEvent.originalDamage().originalModifierDamage(DamageModifier damageModifier) Gets the original damage for the providedDamageModifier.final voidsetBaseDamage(double baseDamage) Sets the "base" damage to deal to the targetedEntity.final voidsetDamage(DamageModifier damageModifier, DoubleUnaryOperator function) Sets the providedDamageFunctionto be used for the givenDamageModifier.booleanReturns whether or not this event will cause the entity to die if the event is not cancelled.Methods inherited from class org.spongepowered.api.event.impl.entity.AbstractModifierEvent
finalAmount, finalAmounts, init, recalculateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.spongepowered.api.event.Cancellable
isCancelled, setCancelledMethods inherited from interface org.spongepowered.api.event.entity.DamageEntityEvent
entity, originalDamage, originalFunctions
-
Field Details
-
originalDamage
protected double originalDamage -
originalFunctions
-
baseDamage
protected double baseDamage
-
-
Constructor Details
-
AbstractDamageEntityEvent
public AbstractDamageEntityEvent()
-
-
Method Details
-
init
protected final void init()Description copied from class:AbstractEventCalled once all fields have been set by the generated constructor in a subclass.This method should be used to initialize any fields that depend on parameters passed to the constructor.
- Overrides:
initin classAbstractEvent
-
originalModifierDamage
Description copied from interface:DamageEntityEventGets the original damage for the providedDamageModifier. If the providedDamageModifierwas not included inDamageEntityEvent.originalDamages(), anIllegalArgumentExceptionis thrown.- Specified by:
originalModifierDamagein interfaceDamageEntityEvent- Parameters:
damageModifier- The original damage modifier- Returns:
- The original damage change
-
originalFinalDamage
public final double originalFinalDamage()Description copied from interface:DamageEntityEventGets the original "final" amount of damage after all originalDamageModifiers are applied toDamageEntityEvent.originalDamage(). The "final" damage is considered the amount of health being lost by theEntity, if health is tracked.- Specified by:
originalFinalDamagein interfaceDamageEntityEvent- Returns:
- The final amount of damage to originally deal
-
originalDamages
Description copied from interface:DamageEntityEventGets an immutableMapof all originalDamageModifiers and their associated "modified" damage. Note that ordering is not retained.- Specified by:
originalDamagesin interfaceDamageEntityEvent- Returns:
- An immutable map of the original modified damages
-
finalDamage
public final double finalDamage()Description copied from interface:DamageEntityEventGets the final damage that will be passed into the proceedingDamageEntityEvent. The final damage is the end result of theDamageEntityEvent.baseDamage()being applied inDoubleUnaryOperator.applyAsDouble(double)available from all theTuples ofDamageModifiertoDamageFunctioninDamageEntityEvent.originalFunctions().- Specified by:
finalDamagein interfaceDamageEntityEvent- Returns:
- The final damage to deal
-
isModifierApplicable
Description copied from interface:DamageEntityEventChecks whether the providedDamageModifieris applicable to the current availableDamageModifiers.- Specified by:
isModifierApplicablein interfaceDamageEntityEvent- Parameters:
damageModifier- The damage modifier to check- Returns:
- True if the damage modifier is relevant to this event
-
damage
Description copied from interface:DamageEntityEventGets the damage for the providedDamageModifier. Providing thatDamageEntityEvent.isModifierApplicable(DamageModifier)returnstrue, the cached "damage" for theDamageModifieris returned.- Specified by:
damagein interfaceDamageEntityEvent- Parameters:
damageModifier- The damage modifier to get the damage for- Returns:
- The modifier
-
setDamage
Description copied from interface:DamageEntityEventSets the providedDamageFunctionto be used for the givenDamageModifier. If theDamageModifieris already included inDamageEntityEvent.modifiers(), theDoubleUnaryOperatorreplaces the existing function. If there is noTuplefor theDamageModifier, a new one is created and added to the end of the list ofDoubleUnaryOperators to be applied to theDamageEntityEvent.baseDamage().If needing to create a custom
DamageModifieris required, usage of theDamageModifier.Builderis recommended.- Specified by:
setDamagein interfaceDamageEntityEvent- Parameters:
damageModifier- The damage modifierfunction- The function to map to the modifier
-
addDamageModifierBefore
public void addDamageModifierBefore(DamageModifier damageModifier, DoubleUnaryOperator function, Set<DamageModifierType> before) Description copied from interface:DamageEntityEventAdds the providedDamageModifierandDoubleUnaryOperatorto the list of modifiers, such that theSetcontainingDamageModifierTypes provided inbeforewill appear after the provided damage modifier.- Specified by:
addDamageModifierBeforein interfaceDamageEntityEvent- Parameters:
damageModifier- The damage modifier to addfunction- The associated functionbefore- The set containing the modifier types to come after the provided modifier
-
addModifierAfter
public void addModifierAfter(DamageModifier damageModifier, DoubleUnaryOperator function, Set<DamageModifierType> after) Description copied from interface:DamageEntityEventAdds the providedDamageModifierandDoubleUnaryOperatorto the list of modifiers, such that the modifier will appear in order after any current modifiers whose type are included in the providedSetofDamageModifierTypes.- Specified by:
addModifierAfterin interfaceDamageEntityEvent- Parameters:
damageModifier- The damage modifier to addfunction- The associated functionafter- The set of modifier types to come before the new modifier
-
convertTuple
- Specified by:
convertTuplein classAbstractModifierEvent<DamageFunction,DamageModifier>
-
modifiers
Description copied from class:AbstractModifierEventGets the modifiers affecting this event.- Specified by:
modifiersin interfaceDamageEntityEvent- Overrides:
modifiersin classAbstractModifierEvent<DamageFunction,DamageModifier> - Returns:
- The list of modifiers
-
baseDamage
public double baseDamage()Description copied from interface:DamageEntityEventGets the "base" damage to deal to the targetedEntity. The "base" damage is the original value before passing along the chain ofDamageFunctions for all knownDamageModifiers.- Specified by:
baseDamagein interfaceDamageEntityEvent- Returns:
- The base damage
-
setBaseDamage
public final void setBaseDamage(double baseDamage) Description copied from interface:DamageEntityEventSets the "base" damage to deal to the targetedEntity. The "base" damage is the original value before passing along the chain ofDamageFunctions for all knownDamageModifiers.- Specified by:
setBaseDamagein interfaceDamageEntityEvent- Parameters:
baseDamage- The base damage
-
willCauseDeath
public boolean willCauseDeath()Description copied from interface:DamageEntityEventReturns whether or not this event will cause the entity to die if the event is not cancelled. Only supported for living entities, returns false ifDamageEntityEvent.entity()is not a living entity.- Specified by:
willCauseDeathin interfaceDamageEntityEvent- Returns:
- Whether the entity will die
-