java.lang.Object
me.deecaad.weaponmechanics.weapon.projectile.weaponprojectile.ProjectileSettings
All Implemented Interfaces:
Cloneable, me.deecaad.core.file.Serializer<ProjectileSettings>

public class ProjectileSettings extends Object implements me.deecaad.core.file.Serializer<ProjectileSettings>, Cloneable
  • Constructor Details

    • ProjectileSettings

      public ProjectileSettings()
      Empty constructor to be used as serializer
    • ProjectileSettings

      public ProjectileSettings(org.bukkit.entity.EntityType projectileDisguise, Object disguiseData, double gravity, boolean removeAtMinimumSpeed, double minimumSpeed, boolean removeAtMaximumSpeed, double maximumSpeed, double decrease, double decreaseInWater, double decreaseWhenRainingOrSnowing, boolean disableEntityCollisions, int maximumAliveTicks, double maximumTravelDistance, double size, boolean incendiaryProjectile, boolean extinguishInWater)
  • Method Details

    • getProjectileDisguise

      @Nullable public org.bukkit.entity.EntityType getProjectileDisguise()
      Returns:
      the entity type this projectile should be disguised as
    • setProjectileDisguise

      public void setProjectileDisguise(org.bukkit.entity.EntityType projectileDisguise)
    • getDisguiseData

      @Nullable public Object getDisguiseData()
      Only certain entities need this. For example falling block, entity item and so on. FALLING_BLOCK -> Material ENTITY_ITEM -> ItemStack FIREWORK -> ItemStack with FireworkMeta
      Returns:
      the item stack which may be used when spawning projectile disguise
    • setDisguiseData

      public void setDisguiseData(Object disguiseData)
    • getGravity

      public double getGravity()
      Returns:
      gravity of projectile
    • setGravity

      public void setGravity(double gravity)
    • getMinimumSpeed

      public double getMinimumSpeed()
      Returns:
      minimum speed of projectile
    • setMinimumSpeed

      public void setMinimumSpeed(double minimumSpeed)
    • isRemoveAtMinimumSpeed

      public boolean isRemoveAtMinimumSpeed()
      Returns:
      whether to remove projectile when minimum speed is reached
    • setRemoveAtMinimumSpeed

      public void setRemoveAtMinimumSpeed(boolean removeAtMinimumSpeed)
    • getMaximumSpeed

      public double getMaximumSpeed()
      Returns:
      maximum speed of projectile
    • setMaximumSpeed

      public void setMaximumSpeed(double maximumSpeed)
    • isRemoveAtMaximumSpeed

      public boolean isRemoveAtMaximumSpeed()
      Returns:
      whether to remove projectile when maximum speed is reached
    • setRemoveAtMaximumSpeed

      public void setRemoveAtMaximumSpeed(boolean removeAtMaximumSpeed)
    • getDecrease

      public double getDecrease()
      Returns:
      base speed decreasing
    • setDecrease

      public void setDecrease(double decrease)
    • getDecreaseInWater

      public double getDecreaseInWater()
      Returns:
      speed decreasing in water
    • setDecreaseInWater

      public void setDecreaseInWater(double decreaseInWater)
    • getDecreaseWhenRainingOrSnowing

      public double getDecreaseWhenRainingOrSnowing()
      Returns:
      speed decreasing when raining or snowing
    • setDecreaseWhenRainingOrSnowing

      public void setDecreaseWhenRainingOrSnowing(double decreaseWhenRainingOrSnowing)
    • isDisableEntityCollisions

      public boolean isDisableEntityCollisions()
      Returns:
      whether to skip entity collision checks
    • setDisableEntityCollisions

      public void setDisableEntityCollisions(boolean disableEntityCollisions)
    • getMaximumAliveTicks

      public int getMaximumAliveTicks()
      Returns:
      the maximum amount of ticks projectile can be alive
    • setMaximumAliveTicks

      public void setMaximumAliveTicks(int maximumAliveTicks)
    • getMaximumTravelDistance

      public double getMaximumTravelDistance()
      Returns:
      the maximum travel distance of projectile, -1 if not used
    • setMaximumTravelDistance

      public void setMaximumTravelDistance(double maximumTravelDistance)
    • getSize

      public double getSize()
      Returns:
      the projectile size, 0.1 if not used
    • setSize

      public void setSize(double size)
    • isIncendiaryProjectile

      public boolean isIncendiaryProjectile()
      Returns:
      whether the projectile is on fire or not
    • setIncendiaryProjectile

      public void setIncendiaryProjectile(boolean incendiaryProjectile)
    • isExtinguishInWater

      public boolean isExtinguishInWater()
      Returns:
      whether the projectile should be extinguished in water
    • setExtinguishInWater

      public void setExtinguishInWater(boolean extinguishInWater)
    • getKeyword

      public String getKeyword()
      Specified by:
      getKeyword in interface me.deecaad.core.file.Serializer<ProjectileSettings>
    • serialize

      @NotNull public ProjectileSettings serialize(@NotNull me.deecaad.core.file.SerializeData data) throws me.deecaad.core.file.SerializerException
      Specified by:
      serialize in interface me.deecaad.core.file.Serializer<ProjectileSettings>
      Throws:
      me.deecaad.core.file.SerializerException
    • clone

      public ProjectileSettings clone()
      Overrides:
      clone in class Object