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;
}
}