BlockMapMarkersResource class
Пакет: com.hypixel.hytale.server.core.universe.world.meta.state
Файл: com/hypixel/hytale/server/core/universe/world/meta/state/BlockMapMarkersResource.java
implements: Resource<ChunkStore>
Поля (12)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final BuilderCodec<BlockMapMarkersResource.BlockMapMarkerData> |
CODEC |
final |
int |
VERSION |
|
private boolean |
discoverable |
|
private String |
icon |
|
private String |
markerId |
|
private String |
name |
|
|
return |
|
BlockMapMarkersResource.BlockMapMarkerData |
var2 |
|
String |
var3 |
|
long |
var3 |
|
|
var3 |
|
BlockMapMarkersResource.BlockMapMarkerData |
var5 |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
BlockMapMarkerDatapublic BlockMapMarkerData() |
|
public |
BlockMapMarkerDatapublic BlockMapMarkerData(String var1, String var2, String var3) |
|
public |
BlockMapMarkerDatapublic BlockMapMarkerData(String var1, String var2, String var3, boolean var4) |
|
public String |
getIconpublic String getIcon() |
|
public String |
getMarkerIdpublic String getMarkerId() |
|
public String |
getNamepublic String getName() |
static |
ResourceType<ChunkStore, BlockMapMarkersResource> |
getResourceTypeResourceType<ChunkStore, BlockMapMarkersResource> getResourceType() |
|
|
if if(var1 != null) |
|
|
if if(var1 != null) |
|
public boolean |
isDiscoverablepublic boolean isDiscoverable() |
static |
void |
putLegacyMarkervoid putLegacyMarker(@Nonnull Int3ObjectOpenHashMap<BlockMapMarkersResource.BlockMapMarkerData> var0,
@Nonnull String var1,
@Nonnull BlockMapMarkersResource.BlockMapMarkerData var2) |
abstract |
|
this this(var1, var2, var3, false) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.meta.state;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.block.BlockUtil;
class="kw">import com.hypixel.hytale.math.codec.Int3ObjectMapCodec;
class="kw">import com.hypixel.hytale.math.data.Int3ObjectOpenHashMap;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.UUID;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;
class="kw">import org.joml.Vector3ic;
class="kw">public class BlockMapMarkersResource class="kw">implements Resource<ChunkStore> {
class="kw">private class="kw">static class="kw">final int VERSION = 1;
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">public class="kw">static class="kw">final BuilderCodec<BlockMapMarkersResource> CODEC = BuilderCodec.<BlockMapMarkersResource>builder(
BlockMapMarkersResource.class, BlockMapMarkersResource::new
)
.versioned()
.codecVersion(1)
.<Map>append(new KeyedCodec<>("Markers", new MapCodec<>(BlockMapMarkersResource.BlockMapMarkerData.CODEC, HashMap::new), true), (var0, var1) -> {
if (var1 != null) {
for (Entry var3 : var1.entrySet()) {
putLegacyMarker(var0.markers, var3.getKey(), var3.getValue());
}
}
}, var0 -> null)
.setVersionRange(0, 0)
.add()
.<Int3ObjectOpenHashMap<BlockMapMarkersResource.BlockMapMarkerData>>append(
new KeyedCodec<>("Markers", new Int3ObjectMapCodec<>(BlockMapMarkersResource.BlockMapMarkerData.CODEC), true), (var0, var1) -> {
if (var1 != null) {
var0.markers = var1;
}
}, var0 -> var0.markers
)
.setVersionRange(1, 1)
.add()
.build();
class="kw">private Int3ObjectOpenHashMap<BlockMapMarkersResource.BlockMapMarkerData> markers = new Int3ObjectOpenHashMap<>();
class="kw">public BlockMapMarkersResource() {
}
class="kw">public BlockMapMarkersResource(Int3ObjectOpenHashMap<BlockMapMarkersResource.BlockMapMarkerData> var1) {
this.markers = var1;
}
class="kw">public class="kw">static ResourceType<ChunkStore, BlockMapMarkersResource> getResourceType() {
class="kw">return BlockModule.get().getBlockMapMarkersResourceType();
}
@Nonnull
class="kw">public class="kw">static BlockMapMarkersResource of(@Nonnull World var0) {
class="kw">return var0.getChunkStore().getStore().getResource(getResourceType());
}
@Nonnull
class="kw">public Int3ObjectOpenHashMap<BlockMapMarkersResource.BlockMapMarkerData> getMarkers() {
class="kw">return this.markers;
}
@Nullable
class="kw">public BlockMapMarkersResource.BlockMapMarkerData getMarker(int var1, int var2, int var3) {
class="kw">return this.markers.get(var1, var2, var3);
}
@Nullable
class="kw">public BlockMapMarkersResource.BlockMapMarkerData getMarker(@Nonnull Vector3ic var1) {
class="kw">return this.getMarker(var1.x(), var1.y(), var1.z());
}
@Nonnull
class="kw">public BlockMapMarkersResource.BlockMapMarkerData addMarker(@Nonnull Vector3i var1, @Nonnull String var2, @Nonnull String var3) {
class="kw">return this.addMarker(var1, var2, var3, false);
}
@Nonnull
class="kw">public BlockMapMarkersResource.BlockMapMarkerData addMarker(@Nonnull Vector3i var1, @Nonnull String var2, @Nonnull String var3, boolean var4) {
BlockMapMarkersResource.BlockMapMarkerData var5 = new BlockMapMarkersResource.BlockMapMarkerData(var2, var3, this.resolveMarkerId(var1), var4);
this.markers.put(var1.x, var1.y, var1.z, var5);
class="kw">return var5;
}
@Nullable
class="kw">public BlockMapMarkersResource.BlockMapMarkerData removeMarker(@Nonnull Vector3i var1) {
class="kw">return this.markers.remove(var1.x, var1.y, var1.z);
}
@Override
class="kw">public Resource<ChunkStore> clone() {
class="kw">return new BlockMapMarkersResource(new Int3ObjectOpenHashMap<>(this.markers));
}
@Nonnull
class="kw">private String resolveMarkerId(@Nonnull Vector3i var1) {
BlockMapMarkersResource.BlockMapMarkerData var2 = this.markers.get(var1.x, var1.y, var1.z);
String var3 = var2 == null ? null : var2.getMarkerId();
class="kw">return var3 != null ? var3 : UUID.randomUUID().toString();
}
class="kw">private class="kw">static void putLegacyMarker(
@Nonnull Int3ObjectOpenHashMap<BlockMapMarkersResource.BlockMapMarkerData> var0,
@Nonnull String var1,
@Nonnull BlockMapMarkersResource.BlockMapMarkerData var2
) {
long var3;
try {
var3 = Long.parseLong(var1);
} catch (NumberFormatException var6) {
LOGGER.at(Level.WARNING).log("Skipping block map marker with malformed legacy position key: %s", var1);
class="kw">return;
}
var0.put(BlockUtil.unpackX(var3), BlockUtil.unpackY(var3), BlockUtil.unpackZ(var3), var2);
}
class="kw">public class="kw">static class BlockMapMarkerData {
class="kw">public class="kw">static class="kw">final BuilderCodec<BlockMapMarkersResource.BlockMapMarkerData> CODEC = BuilderCodec.builder(
BlockMapMarkersResource.BlockMapMarkerData.class, BlockMapMarkersResource.BlockMapMarkerData::new
)
.append(new KeyedCodec<>("Name", Codec.STRING), (var0, var1) -> var0.name = var1, var0 -> var0.name)
.add()
.append(new KeyedCodec<>("Icon", Codec.STRING), (var0, var1) -> var0.icon = var1, var0 -> var0.icon)
.add()
.append(new KeyedCodec<>("MarkerId", Codec.STRING), (var0, var1) -> var0.markerId = var1, var0 -> var0.markerId)
.add()
.append(
new KeyedCodec<>("Discoverable", Codec.BOOLEAN),
(var0, var1) -> var0.discoverable = var1 != null && var1,
var0 -> var0.discoverable ? Boolean.TRUE : null
)
.add()
.build();
class="kw">private String name;
class="kw">private String icon;
class="kw">private String markerId;
class="kw">private boolean discoverable;
class="kw">public BlockMapMarkerData() {
}
class="kw">public BlockMapMarkerData(String var1, String var2, String var3) {
this(var1, var2, var3, false);
}
class="kw">public BlockMapMarkerData(String var1, String var2, String var3, boolean var4) {
this.name = var1;
this.icon = var2;
this.markerId = var3;
this.discoverable = var4;
}
class="kw">public String getName() {
class="kw">return this.name;
}
class="kw">public String getIcon() {
class="kw">return this.icon;
}
class="kw">public String getMarkerId() {
class="kw">return this.markerId;
}
class="kw">public boolean isDiscoverable() {
class="kw">return this.discoverable;
}
}
}