13
0
geforkt von Mirrors/Paper

Add Destroy Speed API

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Dieser Commit ist enthalten in:
Ineusia 2020-10-26 11:37:48 -05:00
Ursprung 7ee931eaf2
Commit 72ab93ca8a
2 geänderte Dateien mit 56 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -690,4 +690,31 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
@Deprecated(forRemoval = true)
String getTranslationKey();
// Paper end
// Paper start - destroy speed API
/**
* Gets the speed at which this block will be destroyed by a given {@link ItemStack}
* <p>
* Default value is 1.0
*
* @param itemStack {@link ItemStack} used to mine this Block
* @return the speed that this Block will be mined by the given {@link ItemStack}
*/
default float getDestroySpeed(final @NotNull ItemStack itemStack) {
return this.getBlockData().getDestroySpeed(itemStack);
}
/**
* Gets the speed at which this block will be destroyed by a given {@link ItemStack}
* <p>
* Default value is 1.0
*
* @param itemStack {@link ItemStack} used to mine this Block
* @param considerEnchants true to look at enchants on the itemstack
* @return the speed that this Block will be mined by the given {@link ItemStack}
*/
default float getDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants) {
return this.getBlockData().getDestroySpeed(itemStack, considerEnchants);
}
// Paper end - destroy speed API
}

Datei anzeigen

@ -266,4 +266,33 @@ public interface BlockData extends Cloneable {
@NotNull
@ApiStatus.Experimental
BlockState createBlockState();
// Paper start - destroy speed API
/**
* Gets the speed at which this block will be destroyed by a given {@link ItemStack}
* <p>
* Default value is 1.0
*
* @param itemStack {@link ItemStack} used to mine this Block
* @return the speed that this Block will be mined by the given {@link ItemStack}
* @apiNote this method assumes default player state and hence, e.g., does not take into account changed
* player attributes or potion effects.
*/
default float getDestroySpeed(final @NotNull ItemStack itemStack) {
return this.getDestroySpeed(itemStack, false);
}
/**
* Gets the speed at which this block will be destroyed by a given {@link ItemStack}
* <p>
* Default value is 1.0
*
* @param itemStack {@link ItemStack} used to mine this Block
* @param considerEnchants true to look at enchants on the itemstack
* @return the speed that this Block will be mined by the given {@link ItemStack}
* @apiNote this method assumes default player state and hence, e.g., does not take into account changed
* player attributes or potion effects.
*/
float getDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants);
// Paper end - destroy speed API
}