mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
Friction API
This commit is contained in:
parent
19743ae5dc
commit
0232bdcc50
4 changed files with 38 additions and 3 deletions
|
@ -0,0 +1,35 @@
|
|||
package io.papermc.paper.entity;
|
||||
|
||||
import net.kyori.adventure.util.TriState;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Represents an {@link Entity} that can experience friction with the air and ground.
|
||||
*/
|
||||
@NullMarked
|
||||
public interface Frictional {
|
||||
|
||||
/**
|
||||
* Gets the friction state of this entity.
|
||||
* When set to {@link TriState#TRUE}, the entity will always experience friction.
|
||||
* When set to {@link TriState#FALSE}, the entity will never experience friction.
|
||||
* When set to {@link TriState#NOT_SET}, the entity will fall back to Minecraft's default behaviour.
|
||||
*
|
||||
* @return the entity's friction state
|
||||
*/
|
||||
TriState getFrictionState();
|
||||
|
||||
/**
|
||||
* Sets the friction state of this entity.
|
||||
* When set to {@link TriState#TRUE}, the entity will always experience friction.
|
||||
* When set to {@link TriState#FALSE}, the entity will never experience friction.
|
||||
* When set to {@link TriState#NOT_SET}, the entity will fall back to Minecraft's default behaviour.
|
||||
* <p>
|
||||
* Please note that changing this value will do nothing for a player.
|
||||
*
|
||||
* @param state the new friction state to set for the entity
|
||||
*/
|
||||
void setFrictionState(TriState state);
|
||||
|
||||
}
|
|
@ -8,7 +8,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
/**
|
||||
* Represents a dropped item.
|
||||
*/
|
||||
public interface Item extends Entity {
|
||||
public interface Item extends Entity, io.papermc.paper.entity.Frictional { // Paper
|
||||
|
||||
/**
|
||||
* Gets the item stack associated with this item drop.
|
||||
|
|
|
@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
/**
|
||||
* Represents a living entity, such as a monster or player
|
||||
*/
|
||||
public interface LivingEntity extends Attributable, Damageable, ProjectileSource {
|
||||
public interface LivingEntity extends Attributable, Damageable, ProjectileSource, io.papermc.paper.entity.Frictional { // Paper
|
||||
|
||||
/**
|
||||
* Gets the height of the living entity's eyes above its Location.
|
||||
|
|
|
@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
/**
|
||||
* Represents a minecart entity.
|
||||
*/
|
||||
public interface Minecart extends Vehicle {
|
||||
public interface Minecart extends Vehicle, io.papermc.paper.entity.Frictional { // Paper
|
||||
|
||||
/**
|
||||
* Sets a minecart's damage.
|
||||
|
|
Loading…
Reference in a new issue