#512: Expand Strider and Steerable entity API

By: Parker Hawke <hawkeboyz2@hotmail.com>
This commit is contained in:
Bukkit/Spigot
2020-06-30 09:53:40 +10:00
parent e34cd0f4b9
commit c689413d27
4 changed files with 138 additions and 17 deletions

View File

@@ -0,0 +1,71 @@
package org.bukkit.entity;
import org.bukkit.Material;
import org.jetbrains.annotations.NotNull;
/**
* Represents an entity which may be saddled, ridden and steered using an item.
*/
public interface Steerable extends Animals {
/**
* Check if the pig has a saddle.
*
* @return if the pig has been saddled.
*/
public boolean hasSaddle();
/**
* Sets if the pig has a saddle or not
*
* @param saddled set if the pig has a saddle or not.
*/
public void setSaddle(boolean saddled);
/**
* Get the time in ticks this entity's movement is being increased.
*
* Movement speed is often increased as a result of using the
* {@link #getSteerMaterial()}.
*
* @return the current boost ticks
*/
public int getBoostTicks();
/**
* Set the time in ticks this entity's movement will be increased.
*
* This will reset the current boost ticks to 0
* ({@link #getCurrentBoostTicks()}).
*
* @param ticks the boost time
*/
public void setBoostTicks(int ticks);
/**
* Get the time in ticks this entity's movement has been increased as of the
* most recent boost.
*
* Current boost ticks will never be {@literal >} {@link #getBoostTicks()}.
*
* @return the current boost ticks
*/
public int getCurrentBoostTicks();
/**
* Set the time in ticks this entity's movement has been increased relative
* to the most recent boost.
*
* @param ticks the current boost ticks. Must be {@literal >=} 0 and {@literal <=}
* {@link #getBoostTicks()}
*/
public void setCurrentBoostTicks(int ticks);
/**
* Get the material used to steer this entity when ridden by a player.
*
* @return the lure material
*/
@NotNull
public Material getSteerMaterial();
}