BlockCounter class
Пакет: com.hypixel.hytale.server.core.modules.interaction.blocktrack
Файл: com/hypixel/hytale/server/core/modules/interaction/blocktrack/BlockCounter.java
implements: Resource<ChunkStore>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<BlockCounter> |
CODEC |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
int |
getBlockPlacementCountint getBlockPlacementCount(String var1) |
static |
ResourceType<ChunkStore, BlockCounter> |
getResourceTypeResourceType<ChunkStore, BlockCounter> getResourceType() |
abstract |
|
this this() |
public |
void |
trackBlockvoid trackBlock(String var1) |
public |
void |
untrackBlockvoid untrackBlock(String var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.blocktrack;
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.Object2IntMapCodec;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
class="kw">public class BlockCounter class="kw">implements Resource<ChunkStore> {
class="kw">public class="kw">static class="kw">final BuilderCodec<BlockCounter> CODEC = BuilderCodec.builder(BlockCounter.class, BlockCounter::new)
.append(
new KeyedCodec<>("BlockPlacementCounts", new Object2IntMapCodec<>(Codec.STRING, Object2IntOpenHashMap::new, false)),
(var0, var1) -> var0.blockPlacementCounts = var1,
var0 -> var0.blockPlacementCounts
)
.add()
.build();
class="kw">private Object2IntMap<String> blockPlacementCounts = new Object2IntOpenHashMap();
class="kw">public class="kw">static ResourceType<ChunkStore, BlockCounter> getResourceType() {
class="kw">return InteractionModule.get().getBlockCounterResourceType();
}
class="kw">public BlockCounter() {
this.blockPlacementCounts.defaultReturnValue(0);
}
class="kw">public BlockCounter(Object2IntMap<String> var1) {
this();
this.blockPlacementCounts = var1;
}
class="kw">public void trackBlock(String var1) {
this.blockPlacementCounts.mergeInt(var1, 1, Integer::sum);
}
class="kw">public void untrackBlock(String var1) {
this.blockPlacementCounts.mergeInt(var1, 0, (var0, var1x) -> var0 - 1);
}
class="kw">public int getBlockPlacementCount(String var1) {
class="kw">return this.blockPlacementCounts.getInt(var1);
}
@Override
class="kw">public Resource<ChunkStore> clone() {
class="kw">return new BlockCounter(new Object2IntOpenHashMap(this.blockPlacementCounts));
}
}