Class PointManager

java.lang.Object
com.hypixel.hytale.builtin.points.manager.PointManager
All Implemented Interfaces:
Resource<EntityStore>, Cloneable

public class PointManager extends Object implements Resource<EntityStore>
World-level resource holding every PointEntry. Mutations run on the world thread and mark the spatial index dirty; queryRadius(Vector3d, double) rebuilds it lazily before serving Java consumers. Tool viewers receive incremental display packets as points change.
  • Field Details

  • Constructor Details

    • PointManager

      public PointManager()
  • Method Details

    • register

      public void register(@Nonnull String id, @Nonnull PointEntry entry)
    • unregister

      public void unregister(@Nonnull String id)
    • getPoint

      @Nullable public PointEntry getPoint(@Nonnull String id)
    • getPoints

      @Nonnull public Collection<PointEntry> getPoints()
    • getPointsWithTags

      @Nonnull public Collection<PointEntry> getPointsWithTags(String... tags)
    • getPointsMap

      @Nonnull public Map<String, PointEntry> getPointsMap()
    • hasPoint

      public boolean hasPoint(@Nonnull String id)
    • markSpatialDirty

      public void markSpatialDirty()
    • setWorld

      public void setWorld(@Nullable World world)
    • getWorld

      @Nullable public World getWorld()
    • generateUniquePointId

      @Nonnull public String generateUniquePointId()
    • queryRadius

      @Nonnull public List<PointEntry> queryRadius(@Nonnull org.joml.Vector3d center, double radius)
      Returns every enabled point within radius blocks of center. The spatial index is rebuilt lazily on first use after any mutation.
    • queryRadius

      @Nonnull public List<PointEntry> queryRadius(@Nonnull org.joml.Vector3d center, double radius, int tagIndex)
    • queryRadius

      @Nonnull public List<PointEntry> queryRadius(@Nonnull org.joml.Vector3d center, double radius, @Nonnull String tag)
    • queryRadius

      public void queryRadius(@Nonnull org.joml.Vector3d center, double radius, @Nonnull List<PointEntry> out)
    • queryRadius

      public void queryRadius(@Nonnull org.joml.Vector3d center, double radius, int tagIndex, @Nonnull List<PointEntry> out)
    • getPointsByTag

      @Nonnull public List<PointEntry> getPointsByTag(int tagIndex)
    • setTag

      public boolean setTag(@Nonnull String pointId, @Nonnull String key, @Nullable String value)
    • removeTag

      public boolean removeTag(@Nonnull String pointId, @Nonnull String key)
    • isViewing

      public boolean isViewing(@Nonnull UUID playerUuid)
    • addViewer

      public void addViewer(@Nonnull UUID playerUuid, @Nonnull PointManager.ViewSource source)
    • removeViewer

      public void removeViewer(@Nonnull UUID playerUuid, @Nonnull PointManager.ViewSource source)
    • getViewerUuids

      @Nonnull public Set<UUID> getViewerUuids()
    • clearViewers

      public void clearViewers()
    • setPlayerSelection

      public void setPlayerSelection(@Nonnull UUID playerUuid, @Nullable String pointId)
    • getPlayerSelection

      @Nullable public String getPlayerSelection(@Nonnull UUID playerUuid)
    • setSelectionObserver

      public void setSelectionObserver(@Nonnull UUID playerUuid, @Nonnull PointManager.SelectionObserver observer)
    • clearSelectionObserver

      public void clearSelectionObserver(@Nonnull UUID playerUuid, @Nonnull PointManager.SelectionObserver observer)
    • sendPointDisplay

      public void sendPointDisplay(@Nonnull PlayerRef playerRef)
    • notifyViewersAdd

      public void notifyViewersAdd(@Nonnull PointEntry point)
    • notifyViewersRemove

      public void notifyViewersRemove(@Nonnull String pointId)
    • buildDisplayEntry

      @Nonnull public PointDisplayEntry buildDisplayEntry(@Nonnull PointEntry point)
    • clone

      @Nonnull public Resource<EntityStore> clone()
      Specified by:
      clone in interface Resource<EntityStore>
      Returns:
      a clone instance of the original resource instance.