From 5727de44dcdbf85bd36aae5ebec86ff52f2a3679 Mon Sep 17 00:00:00 2001 From: filoghost Date: Sun, 29 May 2022 16:44:10 +0200 Subject: [PATCH] Use separate view range for item and text lines --- .../core/tracking/ItemLineTracker.java | 5 +++++ .../holographicdisplays/core/tracking/LineTracker.java | 7 +++++-- .../core/tracking/PositionBasedLineTracker.java | 8 ++++---- .../core/tracking/TextLineTracker.java | 5 +++++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/ItemLineTracker.java b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/ItemLineTracker.java index 485c4864..a97353c9 100644 --- a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/ItemLineTracker.java +++ b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/ItemLineTracker.java @@ -140,4 +140,9 @@ public class ItemLineTracker extends ClickableLineTracker { } } + @Override + protected double getViewRange() { + return 16; + } + } diff --git a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/LineTracker.java b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/LineTracker.java index 98a9092f..a3d2e38e 100644 --- a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/LineTracker.java +++ b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/LineTracker.java @@ -61,8 +61,11 @@ public abstract class LineTracker { sendChangesPackets = true; } - if (hasViewers() && updatePlaceholders()) { - sendChangesPackets = true; + if (hasViewers()) { + boolean textChanged = updatePlaceholders(); + if (textChanged) { + sendChangesPackets = true; + } } // Then, send the changes (if any) to already tracked players diff --git a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/PositionBasedLineTracker.java b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/PositionBasedLineTracker.java index 3f0395a2..4e7bcfa5 100644 --- a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/PositionBasedLineTracker.java +++ b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/PositionBasedLineTracker.java @@ -15,8 +15,6 @@ import java.util.Objects; abstract class PositionBasedLineTracker extends LineTracker { - private static final int ENTITY_VIEW_RANGE = 64; - protected PositionCoordinates position; private boolean positionChanged; @@ -50,8 +48,8 @@ abstract class PositionBasedLineTracker extends LineTracker double diffX = Math.abs(playerLocation.getX() - position.getX()); double diffZ = Math.abs(playerLocation.getZ() - position.getZ()); - return diffX <= (double) ENTITY_VIEW_RANGE - && diffZ <= (double) ENTITY_VIEW_RANGE + return diffX <= getViewRange() + && diffZ <= getViewRange() && getLine().isVisibleTo(player.getBukkitPlayer()); } @@ -65,4 +63,6 @@ abstract class PositionBasedLineTracker extends LineTracker protected abstract void sendPositionChangePackets(Viewers viewers); + protected abstract double getViewRange(); + } diff --git a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/TextLineTracker.java b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/TextLineTracker.java index 645c4e77..07d2ebfb 100644 --- a/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/TextLineTracker.java +++ b/core/src/main/java/me/filoghost/holographicdisplays/core/tracking/TextLineTracker.java @@ -114,4 +114,9 @@ public class TextLineTracker extends ClickableLineTracker { viewers.sendPackets(textEntity.newTeleportPackets(position)); } + @Override + protected double getViewRange() { + return 64; + } + }