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));
   }
}