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