HyCodeYourTale
classpublicPriority 3

ChunkWorldgenBenchmark

com.hypixel.hytale.server.worldgen.benchmark.ChunkWorldgenBenchmark

implements IWorldGenBenchmark

6

Methods

6

Public Methods

1

Fields

1

Constructors

Constructors

public
ChunkWorldgenBenchmark()

Methods

Public Methods (6)

public
CompletableFuture<String> buildReport()
@Nonnull@Override
public
boolean isEnabled()
public
void registerCaveNode(String name)
public
void registerPrefab(String name)
public
void start()
@Override
public
void stop()
@Override

Fields

Private/Package Fields (1)

privateboolean enabled

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.server.worldgen.benchmark;

import com.hypixel.hytale.server.core.universe.world.worldgen.IWorldGenBenchmark;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.Nonnull;

public class ChunkWorldgenBenchmark implements IWorldGenBenchmark {
   @Nonnull
   private final ConcurrentHashMap<String, AtomicInteger> prefabCounts = new ConcurrentHashMap<>();
   @Nonnull
   private final ConcurrentHashMap<String, AtomicInteger> caveNodeCounts = new ConcurrentHashMap<>();
   private boolean enabled = false;

   public ChunkWorldgenBenchmark() {
   }

   @Override
   public void start() {
      this.enabled = true;
   }

   @Override
   public void stop() {
      this.enabled = false;
      this.prefabCounts.clear();
      this.caveNodeCounts.clear();
   }

   @Nonnull
   @Override
   public CompletableFuture<String> buildReport() {
      SortedMap<String, Integer> map = new TreeMap<>(String::compareToIgnoreCase);
      StringBuilder sb = new StringBuilder();
      sb.append("Generated prefab counts: \n");
      this.prefabCounts.forEach((key, value) -> map.put(key, Integer.valueOf(value.get())));
      map.forEach((key, value) -> sb.append(key).append('\t').append(value).append('\n'));
      sb.append('\n');
      map.clear();
      sb.append("Generated cave node counts: \n");
      this.caveNodeCounts.forEach((key, value) -> map.put(key, Integer.valueOf(value.get())));
      map.forEach((key, value) -> sb.append(key).append('\t').append(value).append('\n'));
      sb.append('\n');
      map.clear();
      return CompletableFuture.completedFuture(sb.toString());
   }

   public boolean isEnabled() {
      return this.enabled;
   }

   public void registerPrefab(String name) {
      this.prefabCounts.computeIfAbsent(name, i -> new AtomicInteger(0));
      this.prefabCounts.get(name).incrementAndGet();
   }

   public void registerCaveNode(String name) {
      this.caveNodeCounts.computeIfAbsent(name, i -> new AtomicInteger(0));
      this.caveNodeCounts.get(name).incrementAndGet();
   }
}