mirror of
https://github.com/Minestom/Minestom.git
synced 2025-03-02 11:21:15 +01:00
Custom block breaking and data creation now both have an instance and a position accessible
This commit is contained in:
parent
d49cfc2215
commit
263713ab49
@ -30,7 +30,7 @@ public class StoneBlock extends CustomBlock {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBreakDelay(Player player) {
|
||||
public int getBreakDelay(Player player, BlockPosition position) {
|
||||
return 750;
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ public class UpdatableBlockDemo extends CustomBlock {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBreakDelay(Player player) {
|
||||
public int getBreakDelay(Player player, BlockPosition position) {
|
||||
return 500;
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ public class InstanceContainer extends Instance {
|
||||
|
||||
// Set the block
|
||||
if (isCustomBlock) {
|
||||
data = customBlock.createData(blockPosition, data);
|
||||
data = customBlock.createData(this, blockPosition, data);
|
||||
chunk.UNSAFE_setCustomBlock(x, y, z, customBlock, data);
|
||||
} else {
|
||||
chunk.UNSAFE_setBlock(x, y, z, blockId, data);
|
||||
|
@ -63,7 +63,7 @@ public abstract class CustomBlock {
|
||||
* @param player the player who is trying to break the block
|
||||
* @return the time in ms to break it
|
||||
*/
|
||||
public abstract int getBreakDelay(Player player);
|
||||
public abstract int getBreakDelay(Player player, BlockPosition position);
|
||||
|
||||
public boolean hasUpdate() {
|
||||
UpdateOption updateOption = getUpdateOption();
|
||||
@ -88,7 +88,7 @@ public abstract class CustomBlock {
|
||||
* @param data data given to 'setBlock', can be null
|
||||
* @return Data for this block. Can be null, 'data', or a new object
|
||||
*/
|
||||
public Data createData(BlockPosition blockPosition, Data data) {
|
||||
public Data createData(Instance instance, BlockPosition blockPosition, Data data) {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public class PlayerDiggingListener {
|
||||
if (instance != null) {
|
||||
CustomBlock customBlock = instance.getCustomBlock(blockPosition.getX(), blockPosition.getY(), blockPosition.getZ());
|
||||
if (customBlock != null) {
|
||||
int breakTime = customBlock.getBreakDelay(player);
|
||||
int breakTime = customBlock.getBreakDelay(player, blockPosition);
|
||||
if (breakTime >= 0) {
|
||||
PlayerStartDiggingEvent playerStartDiggingEvent = new PlayerStartDiggingEvent(blockPosition, customBlock);
|
||||
player.callEvent(PlayerStartDiggingEvent.class, playerStartDiggingEvent);
|
||||
|
Loading…
Reference in New Issue
Block a user