BlockComponentChunk class
Пакет: com.hypixel.hytale.server.core.universe.world.chunk
Файл: com/hypixel/hytale/server/core/universe/world/chunk/BlockComponentChunk.java
implements: Component<ChunkStore>
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<BlockComponentChunk> |
CODEC |
|
Int2ObjectOpenHashMap |
var1 |
|
ComponentRegistry.Data |
var1 |
|
Int2ObjectOpenHashMap |
var1 |
|
ObjectIterator |
var2 |
|
Int2ObjectOpenHashMap |
var2 |
|
Entry |
var3 |
|
ObjectIterator |
var3 |
|
Entry |
var4 |
|
Holder |
var5 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
ComponentType<ChunkStore, BlockComponentChunk> |
getComponentTypeComponentType<ChunkStore, BlockComponentChunk> getComponentType() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.chunk;
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.Int2ObjectMapCodec;
class="kw">import com.hypixel.hytale.codec.store.StoredCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentRegistry;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.server.core.modules.LegacyModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
@Deprecated(forRemoval = true)
class="kw">public class BlockComponentChunk class="kw">implements Component<ChunkStore> {
class="kw">public class="kw">static class="kw">final BuilderCodec<BlockComponentChunk> CODEC = BuilderCodec.<BlockComponentChunk>builder(BlockComponentChunk.class, BlockComponentChunk::new)
.addField(
new KeyedCodec<>("BlockComponents", new Int2ObjectMapCodec<>(new StoredCodec<>(ChunkStore.HOLDER_CODEC_KEY), Int2ObjectOpenHashMap::new)),
(var0, var1) -> {
var0.entityHolders.clear();
var0.entityHolders.putAll(var1);
},
var0 -> var0.entityHolders
)
.build();
@Nonnull
class="kw">private class="kw">final Int2ObjectMap<Holder<ChunkStore>> entityHolders;
class="kw">public class="kw">static ComponentType<ChunkStore, BlockComponentChunk> getComponentType() {
class="kw">return LegacyModule.get().getBlockComponentChunkComponentType();
}
class="kw">public BlockComponentChunk() {
this.entityHolders = new Int2ObjectOpenHashMap();
}
class="kw">public BlockComponentChunk(@Nonnull Int2ObjectMap<Holder<ChunkStore>> var1) {
this.entityHolders = var1;
}
@Nonnull
@Override
class="kw">public Component<ChunkStore> clone() {
Int2ObjectOpenHashMap var1 = new Int2ObjectOpenHashMap(this.entityHolders.size());
ObjectIterator var2 = this.entityHolders.int2ObjectEntrySet().iterator();
while (var2.hasNext()) {
Entry var3 = (Entry<Holder<ChunkStore>>)var2.next();
var1.put(var3.getIntKey(), ((Holder)var3.getValue()).clone());
}
class="kw">return new BlockComponentChunk(var1);
}
@Nonnull
@Override
class="kw">public Component<ChunkStore> cloneSerializable() {
ComponentRegistry.Data var1 = ChunkStore.REGISTRY.getData();
Int2ObjectOpenHashMap var2 = new Int2ObjectOpenHashMap(this.entityHolders.size());
ObjectIterator var3 = this.entityHolders.int2ObjectEntrySet().iterator();
while (var3.hasNext()) {
Entry var4 = (Entry<Holder<ChunkStore>>)var3.next();
Holder var5 = (Holder<ChunkStore>)var4.getValue();
if (var5.getArchetype().hasSerializableComponents(var1)) {
var2.put(var4.getIntKey(), var5.cloneSerializable(var1));
}
}
class="kw">return new BlockComponentChunk(var2);
}
@Nullable
class="kw">public Int2ObjectMap<Holder<ChunkStore>> takeEntityHolders() {
if (this.entityHolders.isEmpty()) {
class="kw">return null;
}
Int2ObjectOpenHashMap var1 = new Int2ObjectOpenHashMap(this.entityHolders);
this.entityHolders.clear();
class="kw">return var1;
}
}