WorldMap class

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

Файл: com/hypixel/hytale/server/core/universe/world/map/WorldMap.java

implements: NetworkSerializable<UpdateWorldMap>

Поля (9)

МодификаторыТипИмя
final Map<String, MapMarker> pointsOfInterest
MapChunk[] var1
int var2
ObjectIterator var3
Entry var4
MapMarker var5
long var5
int var7
int var8

Методы (6)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Id " + var1 + " already exists!")
public void addPointOfInterestvoid addPointOfInterest(String var1, String var2, String var3, @Nonnull Vector3i var4)
public void addPointOfInterestvoid addPointOfInterest(String var1, String var2, String var3, @Nonnull Vector3d var4)
public void addPointOfInterestvoid addPointOfInterest(String var1, String var2, String var3, @Nonnull Transform var4)
if if(var5 != null)
if if(this.packet != null)

Исходный код

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

class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.protocol.packets.worldmap.MapChunk;
class="kw">import com.hypixel.hytale.protocol.packets.worldmap.MapImage;
class="kw">import com.hypixel.hytale.protocol.packets.worldmap.MapMarker;
class="kw">import com.hypixel.hytale.protocol.packets.worldmap.UpdateWorldMap;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import com.hypixel.hytale.server.core.util.PositionUtil;
class="kw">import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.longs.Long2ObjectMap.Entry;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class WorldMap class="kw">implements NetworkSerializable<UpdateWorldMap> {
   class="kw">private class="kw">final Map<String, MapMarker> pointsOfInterest = new Object2ObjectOpenHashMap();
   @Nonnull
   class="kw">private class="kw">final Long2ObjectMap<MapImage> chunks;
   class="kw">private UpdateWorldMap packet;

   class="kw">public WorldMap(int var1) {
      this.chunks = new Long2ObjectOpenHashMap(var1);
   }

   @Nonnull
   class="kw">public Map<String, MapMarker> getPointsOfInterest() {
      class="kw">return this.pointsOfInterest;
   }

   @Nonnull
   class="kw">public Long2ObjectMap<MapImage> getChunks() {
      class="kw">return this.chunks;
   }

   class="kw">public void addPointOfInterest(String var1, String var2, String var3, @Nonnull Vector3i var4) {
      this.addPointOfInterest(var1, var2, var3, new Transform(var4));
   }

   class="kw">public void addPointOfInterest(String var1, String var2, String var3, @Nonnull Vector3d var4) {
      this.addPointOfInterest(var1, var2, var3, new Transform(var4));
   }

   class="kw">public void addPointOfInterest(String var1, String var2, String var3, @Nonnull Transform var4) {
      MapMarker var5 = this.pointsOfInterest
         .putIfAbsent(var1, new MapMarker(var1, Message.translation(var2).getFormattedMessage(), var3, PositionUtil.toTransformPacket(var4), null, null));
      if (var5 != null) {
         throw new IllegalArgumentException("Id " + var1 + " already exists!");
      }
   }

   @Nonnull
   class="kw">public UpdateWorldMap toPacket() {
      if (this.packet != null) {
         class="kw">return this.packet;
      }

      MapChunk[] var1 = new MapChunk[this.chunks.size()];
      int var2 = 0;
      ObjectIterator var3 = this.chunks.long2ObjectEntrySet().iterator();

      while (var3.hasNext()) {
         Entry var4 = (Entry<MapImage>)var3.next();
         long var5 = var4.getLongKey();
         int var7 = ChunkUtil.xOfChunkIndex(var5);
         int var8 = ChunkUtil.zOfChunkIndex(var5);
         var1[var2++] = new MapChunk(var7, var8, (MapImage)var4.getValue());
      }

      class="kw">return this.packet = new UpdateWorldMap(var1, this.pointsOfInterest.values().toArray(MapMarker[]::new), null);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "WorldMap{pointsOfInterest=" + this.pointsOfInterest + ", chunks=" + this.chunks + "}";
   }
}