mirror of
https://github.com/Minestom/Minestom.git
synced 2025-01-06 16:37:38 +01:00
Remove BlockHandler#drag
This commit is contained in:
parent
ab51b50072
commit
342554cb36
@ -558,24 +558,13 @@ public class Entity implements Viewable, Tickable, EventHandler, DataContainer,
|
|||||||
this.velocity.copy(newVelocityOut);
|
this.velocity.copy(newVelocityOut);
|
||||||
this.velocity.multiply(tps);
|
this.velocity.multiply(tps);
|
||||||
|
|
||||||
float drag;
|
final Block block = finalChunk.getBlock(position.toBlockPosition());
|
||||||
|
final float drag = block.registry().friction();
|
||||||
if (onGround) {
|
if (onGround) {
|
||||||
final BlockPosition blockPosition = position.toBlockPosition();
|
|
||||||
final Block block = finalChunk.getBlock(blockPosition);
|
|
||||||
final BlockHandler handler = block.getHandler();
|
|
||||||
if (handler != null) {
|
|
||||||
drag = handler.getDrag(instance, blockPosition);
|
|
||||||
} else {
|
|
||||||
// Default ground drag
|
|
||||||
drag = 0.5f;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Stop player velocity
|
// Stop player velocity
|
||||||
if (isNettyClient) {
|
if (isNettyClient) {
|
||||||
this.velocity.zero();
|
this.velocity.zero();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
drag = 0.98f; // air drag
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.velocity.setX(velocity.getX() * drag);
|
this.velocity.setX(velocity.getX() * drag);
|
||||||
|
@ -7,13 +7,7 @@ import net.minestom.server.utils.BlockPosition;
|
|||||||
import net.minestom.server.utils.NamespaceID;
|
import net.minestom.server.utils.NamespaceID;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public abstract class BlockHandler {
|
public interface BlockHandler {
|
||||||
|
|
||||||
private final Block block;
|
|
||||||
|
|
||||||
public BlockHandler(Block block) {
|
|
||||||
this.block = block;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a block has been placed.
|
* Called when a block has been placed.
|
||||||
@ -21,7 +15,7 @@ public abstract class BlockHandler {
|
|||||||
* @param instance the instance of the block
|
* @param instance the instance of the block
|
||||||
* @param blockPosition the position of the block
|
* @param blockPosition the position of the block
|
||||||
*/
|
*/
|
||||||
public abstract void onPlace(@NotNull Instance instance, @NotNull BlockPosition blockPosition);
|
void onPlace(@NotNull Instance instance, @NotNull BlockPosition blockPosition);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a block has been destroyed or replaced.
|
* Called when a block has been destroyed or replaced.
|
||||||
@ -29,7 +23,7 @@ public abstract class BlockHandler {
|
|||||||
* @param instance the instance of the block
|
* @param instance the instance of the block
|
||||||
* @param blockPosition the position of the block
|
* @param blockPosition the position of the block
|
||||||
*/
|
*/
|
||||||
public abstract void onDestroy(@NotNull Instance instance, @NotNull BlockPosition blockPosition);
|
void onDestroy(@NotNull Instance instance, @NotNull BlockPosition blockPosition);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles interactions with this block. Can also block normal item use (containers should block when opening the
|
* Handles interactions with this block. Can also block normal item use (containers should block when opening the
|
||||||
@ -40,20 +34,7 @@ public abstract class BlockHandler {
|
|||||||
* @param blockPosition the position of this block
|
* @param blockPosition the position of this block
|
||||||
* @return true if this block blocks normal item use, false otherwise
|
* @return true if this block blocks normal item use, false otherwise
|
||||||
*/
|
*/
|
||||||
public abstract boolean onInteract(@NotNull Player player, @NotNull Player.Hand hand, @NotNull BlockPosition blockPosition);
|
boolean onInteract(@NotNull Player player, @NotNull Player.Hand hand, @NotNull BlockPosition blockPosition);
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the drag of this block.
|
|
||||||
* <p>
|
|
||||||
* Has to be between 0 and 1.
|
|
||||||
*
|
|
||||||
* @param instance the instance of the block
|
|
||||||
* @param blockPosition the block position
|
|
||||||
* @return the drag to apply
|
|
||||||
*/
|
|
||||||
public float getDrag(@NotNull Instance instance, @NotNull BlockPosition blockPosition) {
|
|
||||||
return block.registry().friction();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines custom behaviour for entities touching this block.
|
* Defines custom behaviour for entities touching this block.
|
||||||
@ -62,7 +43,7 @@ public abstract class BlockHandler {
|
|||||||
* @param position the position at which the block is
|
* @param position the position at which the block is
|
||||||
* @param touching the entity currently touching the block
|
* @param touching the entity currently touching the block
|
||||||
*/
|
*/
|
||||||
public void handleContact(@NotNull Instance instance, @NotNull BlockPosition position, @NotNull Entity touching) {
|
default void handleContact(@NotNull Instance instance, @NotNull BlockPosition position, @NotNull Entity touching) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,5 +53,5 @@ public abstract class BlockHandler {
|
|||||||
*
|
*
|
||||||
* @return the namespace id of this handler
|
* @return the namespace id of this handler
|
||||||
*/
|
*/
|
||||||
public abstract @NotNull NamespaceID getNamespaceId();
|
@NotNull NamespaceID getNamespaceId();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user