mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-27 14:13:24 +02:00
WorldBorder keeps its diameter updated properly
This commit is contained in:
parent
af430ebc3f
commit
d91b1e9966
@ -287,6 +287,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer {
|
||||
return;
|
||||
}
|
||||
|
||||
// Synchronization with updated fields in #getPosition()
|
||||
if (cacheX != position.getX() ||
|
||||
cacheY != position.getY() ||
|
||||
cacheZ != position.getZ()) {
|
||||
|
@ -185,7 +185,16 @@ public class WorldBorder {
|
||||
} else {
|
||||
double diameterDelta = newDiameter - oldDiameter;
|
||||
long elapsedTime = System.currentTimeMillis() - lerpStartTime;
|
||||
this.currentDiameter = oldDiameter + (diameterDelta * ((double) elapsedTime / (double) speed));
|
||||
double percentage = (double) elapsedTime / (double) speed;
|
||||
percentage = Math.max(percentage, 1);
|
||||
this.currentDiameter = oldDiameter + (diameterDelta * percentage);
|
||||
|
||||
// World border finished lerp
|
||||
if (percentage == 1) {
|
||||
this.lerpStartTime = 0;
|
||||
this.speed = 0;
|
||||
this.oldDiameter = newDiameter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user