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)
  • 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)
    • 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