mirror of
https://github.com/Minestom/Minestom.git
synced 2025-01-20 07:02:32 +01:00
Updated ItemEntity.java
This commit is contained in:
parent
6db9ba63f4
commit
56017b90e2
@ -10,10 +10,11 @@ import net.minestom.server.item.StackingRule;
|
|||||||
import net.minestom.server.utils.Position;
|
import net.minestom.server.utils.Position;
|
||||||
import net.minestom.server.utils.time.Cooldown;
|
import net.minestom.server.utils.time.Cooldown;
|
||||||
import net.minestom.server.utils.time.TimeUnit;
|
import net.minestom.server.utils.time.TimeUnit;
|
||||||
import net.minestom.server.utils.time.UpdateOption;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.temporal.TemporalUnit;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -24,7 +25,7 @@ public class ItemEntity extends Entity {
|
|||||||
/**
|
/**
|
||||||
* Used to slow down the merge check delay
|
* Used to slow down the merge check delay
|
||||||
*/
|
*/
|
||||||
private static UpdateOption mergeUpdateOption = new UpdateOption(10, TimeUnit.TICK);
|
private static Duration mergeDelay = Duration.of(10, TimeUnit.SERVER_TICK);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The last time that this item has checked his neighbors for merge
|
* The last time that this item has checked his neighbors for merge
|
||||||
@ -60,8 +61,8 @@ public class ItemEntity extends Entity {
|
|||||||
* @return the merge update option
|
* @return the merge update option
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static UpdateOption getMergeUpdateOption() {
|
public static Duration getMergeDelay() {
|
||||||
return mergeUpdateOption;
|
return mergeDelay;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,15 +70,28 @@ public class ItemEntity extends Entity {
|
|||||||
* Can be set to null to entirely remove the delay.
|
* Can be set to null to entirely remove the delay.
|
||||||
*
|
*
|
||||||
* @param mergeUpdateOption the new merge update option
|
* @param mergeUpdateOption the new merge update option
|
||||||
|
*
|
||||||
|
* @deprecated Replaced by {@link #setMergeDelay(Duration)}
|
||||||
*/
|
*/
|
||||||
public static void setMergeUpdateOption(@Nullable UpdateOption mergeUpdateOption) {
|
@SuppressWarnings("removal")
|
||||||
ItemEntity.mergeUpdateOption = mergeUpdateOption;
|
public static void setMergeUpdateOption(@Nullable net.minestom.server.utils.time.UpdateOption mergeUpdateOption) {
|
||||||
|
setMergeDelay(mergeUpdateOption == null ? null : mergeUpdateOption.toDuration());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the merge delay.
|
||||||
|
* Can be set to null to entirely remove the delay.
|
||||||
|
*
|
||||||
|
* @param delay the new merge delay
|
||||||
|
*/
|
||||||
|
public static void setMergeDelay(@Nullable Duration delay) {
|
||||||
|
ItemEntity.mergeDelay = delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(long time) {
|
public void update(long time) {
|
||||||
if (isMergeable() && isPickable() &&
|
if (isMergeable() && isPickable() &&
|
||||||
(mergeUpdateOption == null || !Cooldown.hasCooldown(time, lastMergeCheck, mergeUpdateOption))) {
|
(mergeDelay == null || !Cooldown.hasCooldown(time, lastMergeCheck, mergeDelay))) {
|
||||||
this.lastMergeCheck = time;
|
this.lastMergeCheck = time;
|
||||||
|
|
||||||
final Chunk chunk = instance.getChunkAt(getPosition());
|
final Chunk chunk = instance.getChunkAt(getPosition());
|
||||||
@ -213,7 +227,7 @@ public class ItemEntity extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the pickup delay in milliseconds, defined by {@link #setPickupDelay(long, TimeUnit)}.
|
* Gets the pickup delay in milliseconds, defined by {@link #setPickupDelay(long, TemporalUnit)}.
|
||||||
*
|
*
|
||||||
* @return the pickup delay
|
* @return the pickup delay
|
||||||
*/
|
*/
|
||||||
@ -225,10 +239,10 @@ public class ItemEntity extends Entity {
|
|||||||
* Sets the pickup delay of the ItemEntity.
|
* Sets the pickup delay of the ItemEntity.
|
||||||
*
|
*
|
||||||
* @param delay the pickup delay
|
* @param delay the pickup delay
|
||||||
* @param timeUnit the unit of the delay
|
* @param temporalUnit the unit of the delay
|
||||||
*/
|
*/
|
||||||
public void setPickupDelay(long delay, @NotNull TimeUnit timeUnit) {
|
public void setPickupDelay(long delay, @NotNull TemporalUnit temporalUnit) {
|
||||||
this.pickupDelay = timeUnit.toMilliseconds(delay);
|
this.pickupDelay = temporalUnit.getDuration().multipliedBy(delay).toMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user