MarkersCollectorImpl class

Пакет: com.hypixel.hytale.server.core.universe.world.worldmap.markers

Файл: com/hypixel/hytale/server/core/universe/world/worldmap/markers/MarkersCollectorImpl.java

implements: MarkersCollector

Поля (3)

МодификаторыТипИмя
final MapMarkerTracker tracker
var1
MapMarkerOverride var3

Методы (6)

МодификаторыВозвратСигнатура
private void collectMarkervoid collectMarker(@Nonnull MapMarker var1, boolean var2)
public int getChunkViewRadiusint getChunkViewRadius()
public int getPlayerChunkXint getPlayerChunkX()
public int getPlayerChunkZint getPlayerChunkZ()
if if(var1.name == null)
static boolean shouldCheckDistanceboolean shouldCheckDistance(@Nullable MapMarkerOverride var0, boolean var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.worldmap.markers;

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.protocol.packets.worldmap.MapMarker;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.WorldMapTracker;
class="kw">import java.util.Map;
class="kw">import java.util.function.Predicate;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class MarkersCollectorImpl class="kw">implements MarkersCollector {
   class="kw">private class="kw">final MapMarkerTracker tracker;
   class="kw">private class="kw">final int chunkViewRadius;
   class="kw">private class="kw">final int playerChunkX;
   class="kw">private class="kw">final int playerChunkZ;
   class="kw">private class="kw">final Map<String, MapMarkerOverride> overrides;

   class="kw">public MarkersCollectorImpl(MapMarkerTracker var1, int var2, int var3, int var4, @Nonnull Map<String, MapMarkerOverride> var5) {
      this.tracker = var1;
      this.chunkViewRadius = var2;
      this.playerChunkX = var3;
      this.playerChunkZ = var4;
      this.overrides = var5;
   }

   class="kw">public int getChunkViewRadius() {
      class="kw">return this.chunkViewRadius;
   }

   class="kw">public int getPlayerChunkX() {
      class="kw">return this.playerChunkX;
   }

   class="kw">public int getPlayerChunkZ() {
      class="kw">return this.playerChunkZ;
   }

   @Override
   class="kw">public boolean isInViewDistance(double var1, double var3) {
      class="kw">return WorldMapTracker.shouldBeVisible(this.chunkViewRadius, MathUtil.floor(var1) >> 5, MathUtil.floor(var3) >> 5, this.playerChunkX, this.playerChunkZ);
   }

   @Override
   class="kw">public void add(MapMarker var1) {
      this.collectMarker(var1, false);
   }

   @Override
   class="kw">public void addIgnoreViewDistance(MapMarker var1) {
      this.collectMarker(var1, true);
   }

   @Nullable
   @Override
   class="kw">public Predicate<PlayerRef> getPlayerMapFilter() {
      class="kw">return this.tracker.getPlayerMapFilter();
   }

   class="kw">private void collectMarker(@Nonnull MapMarker var1, boolean var2) {
      MapMarkerOverride var3 = this.getMarkerOverride(var1);
      if (!shouldCheckDistance(var3, var2)
         || var1.transform == null
         || var1.transform.position == null
         || this.isInViewDistance(var1.transform.position.x, var1.transform.position.z)) {
         if (var3 != null && var3.icon() != null) {
            var1 = new MapMarker(var1);
            var1.markerImage = var3.icon();
         }

         this.tracker.sendMapMarker(var1);
      }
   }

   @Nullable
   class="kw">private MapMarkerOverride getMarkerOverride(@Nonnull MapMarker var1) {
      if (var1.name == null) {
         class="kw">return null;
      } else if (var1.name.messageId != null) {
         class="kw">return this.overrides.get(var1.name.messageId);
      } else {
         class="kw">return var1.name.rawText != null ? this.overrides.get(var1.name.rawText) : null;
      }
   }

   class="kw">private class="kw">static boolean shouldCheckDistance(@Nullable MapMarkerOverride var0, boolean var1) {
      class="kw">return var0 != null && var0.global() != null ? !var0.global() : !var1;
   }
}