Added CustomBlock#getDrag

This commit is contained in:
Felix Cravic 2020-08-06 04:54:02 +02:00
parent 51af720bd4
commit 1440aa8403
2 changed files with 22 additions and 2 deletions

View File

@ -413,7 +413,16 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer {
float drag;
if (onGround) {
drag = 0.5f; // ground drag
final BlockPosition blockPosition = position.toBlockPosition();
final CustomBlock customBlock =
instance.getCustomBlock(blockPosition);
if (customBlock != null) {
// Custom drag
drag = customBlock.getDrag(instance, blockPosition);
} else {
// Default ground drag
drag = 0.5f;
}
// Stop player velocity
if (PlayerUtils.isNettyClient(this)) {

View File

@ -109,7 +109,7 @@ public abstract class CustomBlock {
* Can be set to < 0 to be cancelled, in this case vanilla time will be used
*
* @param player the player who is trying to break the block
* @param position
* @param position the block position
* @return the time in ms to break it
*/
public abstract int getBreakDelay(Player player, BlockPosition position);
@ -195,6 +195,17 @@ public abstract class CustomBlock {
update(instance, position, blockData);
}
/**
* Get the drag of this block
* <p>
* It has to be between 0 and 1
*
* @return the drag of this block
*/
public float getDrag(Instance instance, BlockPosition blockPosition) {
return 0.5f;
}
/**
* Allows custom block to write block entity data to a given NBT compound.
* Used to send block entity data to the client over the network.