Updated LivingEntity.java

This commit is contained in:
Németh Noel 2021-06-30 00:51:22 +02:00
parent 58bae20f10
commit 384c556caf

View File

@ -30,11 +30,14 @@ import net.minestom.server.utils.Position;
import net.minestom.server.utils.Vector; import net.minestom.server.utils.Vector;
import net.minestom.server.utils.block.BlockIterator; import net.minestom.server.utils.block.BlockIterator;
import net.minestom.server.utils.time.Cooldown; import net.minestom.server.utils.time.Cooldown;
import net.minestom.server.utils.time.Tick;
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.ChronoUnit;
import java.time.temporal.TemporalUnit;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@ -42,7 +45,7 @@ public class LivingEntity extends Entity implements EquipmentHandler {
// ItemStack pickup // ItemStack pickup
protected boolean canPickupItem; protected boolean canPickupItem;
protected Cooldown itemPickupCooldown = new Cooldown(new UpdateOption(5, TimeUnit.TICK)); protected Cooldown itemPickupCooldown = new Cooldown(Duration.of(5, Tick.SERVER_TICKS));
protected boolean isDead; protected boolean isDead;
@ -316,23 +319,23 @@ public class LivingEntity extends Entity implements EquipmentHandler {
* @param duration duration in ticks of the effect * @param duration duration in ticks of the effect
*/ */
public void setFireForDuration(int duration) { public void setFireForDuration(int duration) {
setFireForDuration(duration, TimeUnit.TICK); setFireForDuration(duration, Tick.SERVER_TICKS);
} }
/** /**
* Sets fire to this entity for a given duration. * Sets fire to this entity for a given duration.
* *
* @param duration duration of the effect * @param duration duration of the effect
* @param unit unit used to express the duration * @param temporalUnit unit used to express the duration
* @see #setOnFire(boolean) if you want it to be permanent without any event callback * @see #setOnFire(boolean) if you want it to be permanent without any event callback
*/ */
public void setFireForDuration(int duration, TimeUnit unit) { public void setFireForDuration(int duration, TemporalUnit temporalUnit) {
EntityFireEvent entityFireEvent = new EntityFireEvent(this, duration, unit); EntityFireEvent entityFireEvent = new EntityFireEvent(this, temporalUnit.getDuration().multipliedBy(duration));
// Do not start fire event if the fire needs to be removed (< 0 duration) // Do not start fire event if the fire needs to be removed (< 0 duration)
if (duration > 0) { if (duration > 0) {
EventDispatcher.callCancellable(entityFireEvent, () -> { EventDispatcher.callCancellable(entityFireEvent, () -> {
final long fireTime = entityFireEvent.getFireTime(TimeUnit.MILLISECOND); final long fireTime = entityFireEvent.getFireTime(ChronoUnit.MILLIS);
setOnFire(true); setOnFire(true);
fireExtinguishTime = System.currentTimeMillis() + fireTime; fireExtinguishTime = System.currentTimeMillis() + fireTime;
}); });
@ -659,7 +662,7 @@ public class LivingEntity extends Entity implements EquipmentHandler {
* Gets the time in ms between two fire damage applications. * Gets the time in ms between two fire damage applications.
* *
* @return the time in ms * @return the time in ms
* @see #setFireDamagePeriod(long, TimeUnit) * @see #setFireDamagePeriod(long, TemporalUnit)
*/ */
public long getFireDamagePeriod() { public long getFireDamagePeriod() {
return fireDamagePeriod; return fireDamagePeriod;
@ -669,10 +672,10 @@ public class LivingEntity extends Entity implements EquipmentHandler {
* Changes the delay between two fire damage applications. * Changes the delay between two fire damage applications.
* *
* @param fireDamagePeriod the delay * @param fireDamagePeriod the delay
* @param timeUnit the time unit * @param temporalUnit the time unit
*/ */
public void setFireDamagePeriod(long fireDamagePeriod, @NotNull TimeUnit timeUnit) { public void setFireDamagePeriod(long fireDamagePeriod, @NotNull TemporalUnit temporalUnit) {
fireDamagePeriod = timeUnit.toMilliseconds(fireDamagePeriod); fireDamagePeriod = temporalUnit.getDuration().multipliedBy(fireDamagePeriod).toMillis();
this.fireDamagePeriod = fireDamagePeriod; this.fireDamagePeriod = fireDamagePeriod;
} }