diff options
Diffstat (limited to 'patches/api/0390-Friction-API.patch')
-rw-r--r-- | patches/api/0390-Friction-API.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/patches/api/0390-Friction-API.patch b/patches/api/0390-Friction-API.patch new file mode 100644 index 0000000000..013ab9a8d3 --- /dev/null +++ b/patches/api/0390-Friction-API.patch @@ -0,0 +1,73 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Noah van der Aa <[email protected]> +Date: Wed, 15 Sep 2021 20:40:51 +0200 +Subject: [PATCH] Friction API + + +diff --git a/src/main/java/io/papermc/paper/entity/Frictional.java b/src/main/java/io/papermc/paper/entity/Frictional.java +new file mode 100644 +index 0000000000000000000000000000000000000000..6eb88c664d873506372ad14075bfcbe42958126f +--- /dev/null ++++ b/src/main/java/io/papermc/paper/entity/Frictional.java +@@ -0,0 +1,35 @@ ++package io.papermc.paper.entity; ++ ++import net.kyori.adventure.util.TriState; ++import org.bukkit.entity.Entity; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents an {@link Entity} that can experience friction with the air and ground. ++ */ ++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 ++ */ ++ @NotNull ++ 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(@NotNull TriState state); ++ ++} +diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java +index ced419f8655bff72f0257b639d5f7d73afe3c2e2..bcc6ba95bd21c7972865838c636a03f50b6c1f1a 100644 +--- a/src/main/java/org/bukkit/entity/Item.java ++++ b/src/main/java/org/bukkit/entity/Item.java +@@ -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. +diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java +index cb5ba5d115406d12a2af0811fcfbf510f836b03b..b9f98279789fe26181aa9c7aa253877d916034be 100644 +--- a/src/main/java/org/bukkit/entity/LivingEntity.java ++++ b/src/main/java/org/bukkit/entity/LivingEntity.java +@@ -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. |